Чернобыль. Судный день
Aug. 2nd, 2004 01:54 pmЕще в июне сочинил один нужный алгоритм, перебирающий все даты с указанной (обычно на день-два меньше текущей) по текущую. Удачный и простой алгоритм, который я смело вставил в несколько своих скриптов. Моему китайскому коллеге алгоритм тоже понравился и он его тоже активно использует. Мы его всячески протестили, ошибок не было, скрипты с ним были засунуты на рабочий банковский сервер. В том числе и в виде задач, запускаемых автоматически каждый день.
Например, один из скриптов, использующих этот алгоритм, каждое утро проверяет лог-файл SWIFT-сообщений на предмет ошибки, собирает эти ошибки в отдельный файл и отсылает их мэйлом в суппорт (красиво сказано по-русски, vai ne?).
Сегодня понедельник, 2-е августа. 31-е число было в субботу. В субботу я смотрел "Терминатор. Судный день", не зная, что он уже случился.
Оказывается, 31-го числа мой алгоритм делает одну ма-а-аленькую ошибку... он никогда не заканчивает выполнение. Поэтому все выходные скрипт с этим алгоритмом занимался тем, что забивал диск банковского сервера и отсылал письма несчастным сотрудникам. Данных на весь weekend ему не хватило, но заголовки он писал успешно. Другие скрипты с его участием были не столь разрушительны. Утром в понедельник Solaris встал колом. Бедный sendmail отрубился и того раньше. Кстати, первый раз вижу текстовый файл размером 700 гигабайт. Lotus Notes сотрудников этот мэйл показывать отказался.
Коллеги назвали происшедшее "Чернобыль". Я спешно поправляю все скрипты, где встречается этот алгоритм, радуясь лишь тому, что не все они запускаются автоматически. Один из неразорвавшихся скриптов изменяет базу данных, содержащую все транзакции за последние два года и информацию о счетах клиентов ;)
Например, один из скриптов, использующих этот алгоритм, каждое утро проверяет лог-файл SWIFT-сообщений на предмет ошибки, собирает эти ошибки в отдельный файл и отсылает их мэйлом в суппорт (красиво сказано по-русски, vai ne?).
Сегодня понедельник, 2-е августа. 31-е число было в субботу. В субботу я смотрел "Терминатор. Судный день", не зная, что он уже случился.
Оказывается, 31-го числа мой алгоритм делает одну ма-а-аленькую ошибку... он никогда не заканчивает выполнение. Поэтому все выходные скрипт с этим алгоритмом занимался тем, что забивал диск банковского сервера и отсылал письма несчастным сотрудникам. Данных на весь weekend ему не хватило, но заголовки он писал успешно. Другие скрипты с его участием были не столь разрушительны. Утром в понедельник Solaris встал колом. Бедный sendmail отрубился и того раньше. Кстати, первый раз вижу текстовый файл размером 700 гигабайт. Lotus Notes сотрудников этот мэйл показывать отказался.
Коллеги назвали происшедшее "Чернобыль". Я спешно поправляю все скрипты, где встречается этот алгоритм, радуясь лишь тому, что не все они запускаются автоматически. Один из неразорвавшихся скриптов изменяет базу данных, содержащую все транзакции за последние два года и информацию о счетах клиентов ;)