Re: Всего-то работа с логами ...
- From
- Valentin Davydov ()
- To
- Stanislav Latishko
- Date
- 2003-01-09T09:55:05Z
- Area
- RU.ALGORITHMS
From: Valentin Davydov <val@sqdp.trc-net.co.jp>
> From: Stanislav Latishko <sl@sl.spb.su>
> Date: Wed, 08 Jan 2003 11:45:34 +0300
>
> Вот тебе пример из жизни. (Произошло году в 90-м на ЭВМ ЕС1033,
>но до сих пор поражает мое воображение _неочевидными_ логическими связями)
>При переходе АЦПУ в состояние "не готово" машина уходит в глухое зависание
>(цикл под закрытыми масками), либо аварийно завершается случайная(!) задача.
>Причина: сбой на диске в библиотеке с программами обработки машинных ошибок.
>Цепочка: неготовность АЦПУ рассматривается как машинная ошибка. Обработчик
>ошибки загружается с диска специальным "урезанным" супервизором в/в (расчи-
>танным на работу при неисправном железе), и он не ловит данный тип ошибки
>на диске - в результате с диска таки загружается программа обработки ошибки,
>но не та, которая нужна, а следующая по физическому расположению. Когда она
>получает управление - возникает программное прерывание в задаче обработки
>ошибок. Поскольку данная задача должна умирать последней - супервизор
>принимает решение о необходимости аварийного завершения пользовательской
>задачи, вызвавшей данную машинную ошибку. Но прерывание в/в по переходу АЦПУ
>в неготовность приходит в случайный момент времени, т.е. никак не связано
>с задачей, работающей с этим АЦПУ, в результате "жертвой" становится
>последняя работавшая задача. Если такой задачей оказывается КРОС - у него
>опять же свои понятия о действиях в аварийной ситуации - он переходит в
>закрытый цикл.
>
> Все просто ? Да, когда тебе это выдали на блюдечке. Между причиной
>(нажатие кнопки на АЦПУ)
Неверно. Причиной зависания является не нажатие кнопки на АЦПУ, а криво
написанные компоненты операционной системы, начиная с "урезанного супервизора".
> Вот _с подобными_ ситуациями я и имею дело (ну, малость попроще,
>обычно) Т.е. начинаешь с _видимого_ следствия, требуется добраться до
>причины. А цепочка может быть огромной...
Обычно всё до обидного просто. Беглый взгляд в сырцы открывает бездну
каких-нибудь length(malloc(...)) или gets(...), после чего в логи уже
можно и не смотреть.
Вал. Дав.
--- ifmail v.2.15dev5
* Origin: Demos online service (2:5020/400)