layout | title | date | categories |
---|---|---|---|
post |
Лучшие ошибки софта V |
2017-10-08 23:43:16 +0300 |
best_fails |
В какой-то мере это ошибка и софта, потому включаю: Intel в 90-х умудрилась выпустить в процессорах Pentium ошибку деления над числами с плавающей запятой. В историю вошло как Pentium FDIV bug и обошлось в результате в $475M — процессоры не пропатчить, пришлось отзывать. Как аукнулись репутационные риски — не подсчитать, но наверняка в AMD за происходящим следили с большим интересом. Характерно, что в Intel знали о проблеме, но как-то... не считали её важной для рынка. Подумаешь, ошибочка. Кто будет страдать, тому камушек и заменим. Но малой кровью обойтись не получилось.
27 марта 2008 года в Хитроу открывали терминал №5. Тут же (хорошо, не прям вот тут же, успели отменить 34 рейса, но) закрыли, потеряв £16M, багаж, пассажиров и нервных клеток без счёта. Сложно тут выделить одну ошибку. Официальные лица говорят, что не успели дотестировать, выкатили всё в сжатые сроки, жизнь отличается от тестирования и т.д. Вроде бы и да. Но кейс "вручную убрать зарегистрированный багаж из системы" можно было и до релиза проверить, а не обнаружить, что он завешивает всё. Надо сказать, битый воробей лучше двух небитых ворон — с 2012 года терминал уже пять раз получил Skytrax World Airport Awards как лучший терминал в мире.
Самую забавную ошибку допустил Роберт Моррис в 1988 году. Вы Роберт. Вы написали вирус, который должен атаковать только VAX-компьютеры, а также с разумной периодичностью решать, плодиться ему или нет. Запускаете. Для подсчёта разумной периодичности слишком маленькое число, для VAX слишком портируемый код. Потому под ударом оказались 6K+ узлов тогда ещё ARPANET (энто как сейчас половину интернета заразить), ущерб на $100M, суд, условные 3 года, штраф на $10K, 400 часов общественных работ. А также попадание в историю. Кстати, Роберт не приуныл. Далее это соавтор будущего Yahoo! Store, соучредитель Y Combinator и вообще профессор в MIT.
В начале января 2010 года банковскую систему Австралии поразил неприятный баг (который в СМИ описывался как "вот то, что могло быть в 2000!") — условная "система" решила, что наступил 2016 год и потому миллионы кредитных карточек просрочены. В основном страдал Bank of Queensland, но задело и остальных. Ущерб не подсчитать. И вот тут меня накрыло дежавю. Полистал архивы. Точно. В начале 2010 года с миллионами карточек влетели и немцы. Плохой, плохой год.
Каждый опытный программист знает, что плохо написанные сервера надо часто ребутать. В какой-то момент этот опыт переняли и эксплуататоры Боинга 787. Смешно (немножко страшно тоже, впрочем), но его надо было ребутать раз в 248 дней, т.к. [по догадкам] система контроля содержала integer overflow (248 дней в секундах не помещаются в int). Вы этого не знали, потому не боялись. А теперь можно подумать ещё и о том, как такие баги проходят через жесточайшие этапы тестирования в Боинге.
Внеплановым шестым абзацем списка опишу не багу. Наверняка банальный человеческий фактор, но любопытен тем, как ошибки всё более глобализуются и входят в быт. В 2015 году в IT-департаменте Starbucks кто-то удалил одну таблицу. После чего бариста в кофейнях США и Канады три часа не могли воспользоваться терминалами. Напитки при этом отпускали (ура пятнице!). Сторонняя оценка утверждает, что потери составили несколько миллионов долларов. Можно также ещё подумать об ответственности разработчиков и админов — любой твой шаг аукнется на всю планету, а пользователь тут же ощутит это, находясь на другом континенте.