Богородица, Дево, фичастую багу прогони!
Уже много лет работаю программистом. И, наверное, пора перестать удивляться, но некоторые баги до сих пор заставляют крепко задуматься над природой мироздания. Причем когда только начинаешь анализировать, читаешь «исью дескрипшин», думаешь, да такого просто не может быть! Первая мысль — WTF?! Потом, уже когда докапываешься до истины, понимаешь: да, вполне себе нормально, ничего сверхъестественного. Обычненько так.
Итак, знакомы ли вам ошибки, от описания которых первое впечатление — ступор. Сегодня короткий пост о подобном давнем и уже знаменитом баге в OpenOffice (который был несколько раз закрыт, и столько же раз открыт снова как актуальный).
«Just because a bug seems impossible doesn«t mean it is» ©
Черный принтерный вторник Несколько сразу срывая интригу, для краткости поста, и значительно теряя в его драматичности, сразу дам разгадку, что Open Office не печатал по вторникам.
Как потом оказалось, бага оказалась не в самом Open Office, а в утилите file, которая определяла тип файла перед печатью. Так вот именно по вторникам она определяла целевой файл, отправленный на печать как не PostScript-файл. И в итоге получалось, что напечатать его нельзя, после чего утилита молча завершалась.
Итак, что мы имеем: внешне все на печать отправлялось нормально, ошибки никакой не выдавалось. Но принтер даже не мигал своими огоньками в ответ на высланное задание печати. Все оставалось неподвижным и безмятежным.
Потом оказалось, что в начало печатаемого файла записывалась дата. Начиная с четвертого байта по вторникам, там лежало Tue (от дня недели Tuesday, вместо цифровой даты). Для утилиты file это было знаком того, что это файл Erlang JAM. То есть на печать его выдавать никак нельзя…
Ну, и… только подтягивались разрабы для дебага проблемы, как вторник стремительно заканчивался, и все хором трубили отбой — баги нет, звиняйте, бесы попутали. В частности, инициатор этого баг-исью abrianb списал своё спасение на обновления, которые он лихорадочно скачивал и ставил, ставил и скачивал весь вторник вечером. После чего на утро бага, не иначе как под напором свежевлитого кода, таки испарилась.
Несмотря на всю простоту сути, обнаружение этого бага превратилось в долгую и нервную историю, я бы даже сказал — в мыльный сериал. Со скандалами и накрученной интригой.
Общая последовательность была примерно такой:
Поэтому не удивляйтесь, что после этой громкой истории, на жалобы что у вас openoffice не печатает, технари сразу переспросят — сегодня, случаем, не вторник?
Послесловие Кстати говоря, самое главное чуть не забыл написать, ради чего весь пост-то и начал набирать. В итоге эту коварную багу нашла жена одного из затраханных этой таинственно ускользающей проблемой разработчиков.
А вы говорите «отладчик-отладчик»… главное — это БАБЫ!