?

Log in

No account? Create an account
ЖЖ Украина

Самый сок!

всё то интересное в сети, что попало в мои сети


Предыдущий пост поделиться Следующий пост
ЖЖ Украина

50 серьезных ошибок в программировании и дизайне, которые стоили жизней, времени и денег

Когда-то я заинтересовался вопросом ответственности в IT. К финансовым потерям мы уже привыкли. Не проданный продукт, ошибка в расчете и недовольный клиент — это те последствия, о которых мы в курсе. Но что, если наши ошибки приведут к непоправимым последствиям. Я несколько раз читал лекции на тему ошибок в программировании, которые привели к человеческим жертвам.

Собственно, мои исследования привели меня к мысли написать об этом книгу. Но в начале мне захотелось протестировать, насколько эта идея интересна и необходима публике. Твиттер оказался отличной площадкой для этого. Результат этого теста перед вами.

1. Элаи Херцберг попала в историю как первый человек, который погиб под колесами беспилотного автомобиля. Весной 2018 года в темное время суток машина Uber засекла преграду. В начале она подумала, что это мусор, потом — что животное, и только за пару метров поняла, что это человек.

К сожалению, машина не успела затормозить, что привело к смерти человека. Тестирование проходило на модифицированной Volvo XC90, у которой была отключена система экстренного торможения, чтобы не мешать ПО Uber управлять машиной. Не может быть два короля в одном королевстве. Задача тормозить в экстренных случаях была возложена на плечи водителя, который страховал автопилот. Он же в это время смотрел Netflix.

2. Аппарат Therac-25 стал самым резонансным случаем в истории программирования для медицинских девайсов. В силу ошибки race condition, при быстром переключении между магнитным и рентгеновским режимами работы девайса заслонка для рентгеновских лучей не успевала установиться. Из-за этого у 10 пациентов диагностировали лучевую болезнь, что привело к смерти или ампутации пораженных частей тела.

3. 25 февраля 1991 года установка ПВО Patriot не смогла перехватить ракету, пущенную со стороны сил Саддама Хусейна. Ракета попала в барак солдат США, что привело к 28 смертям. Расследование показало, что 24-битные процессоры перехватчика при переводе времени совершают ошибку в 0.013 секунды каждый час. Patriot не перезагружали более 100 часов, что привело к ошибкам вычисления положения ракеты на 600 метров. Вот уж где перезагрузка спасла бы жизни.

4. В 2016 году актер Антон Ельчин был раздавлен собственной машиной при въезде домой. Антон многим запомнился как актер, сыгравший навигатора Чехова в полнометражках «Start Trek». Причиной смерти послужил не интуитивный дизайн ручки передач, представленный Jeep в новых моделях машин.

В отличие от стандартных ручек передач, где положение ручки показывает режим работы двигателя, у новых ручек местоположение выбиралось скорее как рычажок в меню. Антон вместо паркинга выбрал нейтральное положение, от чего машина скатилась и задавила невнимательного хозяина.

5. В 1992 году ошибки системы распределения маршрутов в Лондонской скорой помощи привели к смерти 30-45 человек (разброс большой, потому что не ясно, смогла бы скорая спасти того или иного человека). Все произошло, когда в Лондоне решили заменить людей операторов на компьютерную систему.

В результате система была введена в эксплуатацию без нагрузочного тестирования и с 81! известным багом. Добавьте к этому еще и то, что интегратор решил сэкономить и купил дешевое оборудование, которое сломалось через пару часов после активного пользования системой. Хаос был настолько безумным, что бывали случаи, когда человек, не дождавшись скорой, умирал, его увозили в морг, и только тогда приезжала скорая.

6. 1979 год. Пенсильвания чуть не стала еще одним Чернобылем, и это самый большой прецедент в истории атомной энергетики США. Внешний дизайн датчиков системы там был очень плохо продуман и был расположен по кругу комнаты. Смена, которая следила за состоянием, не заметила всех показателей, которые указывали на то, что есть утечка, и значение температуры реактора приблизилось к критическому значению. Ситуацию спасла следующая смена, которая выходила на вахту и начинала считывать показания датчиков.

Чтоб считать показатели, надо было пройти по круглой комнате и отдельно смотреть на каждый показатель во многих разных местах. Утечку нашли, реактор отключили, но еще 14 лет проводили работы по очищению территории. Это стало поводом огромных протестных митингов и очень поменяло общественное мнение про «мирный атом».

7. 1992 год, самолет под управлением опытной команды потерпел крушение возле Страсбурга. 87 из 92 человек погибли. Анализ черного ящика показал, что опытные пилоты перепутали настройки автопилота: угол и скорость снижения.

Дизайнер приборной панели очень стремился сэкономить место и расположил эти два индикатора друг возле друга. При том, что даже не смотря на то, что единицы измерения совершенно разные (пилоты хотели задать 3.3 градуса спуска, а задали 3300 футов в минуту). Но для экономии места оба показателя показывались как 3.3. Кому в голову придет показывать 3300 как 33?

8. Моя любимая история. Станислав Петров в 1983 году спас мир, не сделав ничего. Во время разгара холодной войны между США и СССР он служил в штабе антиракетной обороны. Так как две страны обладали атомным оружием, между ними была заключена доктрина взаимного гарантированного уничтожения. Это значило, что как только одна ракета полетит со стороны одной страны в другую, другая может ответить, как хочет. Грубо говоря — начало третьей мировой.

Станислав Петров в 1983 году как раз наблюдал за системой раннего обнаружения ракетного удара. И как же он удивился, когда увидел на экране 5 ракет, которые летели со стороны США в сторону СССР. По всем правилам Петров должен был отдать указания полномасштабного ракетного удара по США. Но, как он сказал: «У него была чуйка». Он предположил, что нападать на СССР всего лишь 5 ракетами — не логично, и решил подождать. Внезапно ракеты пропали, он сделал рапорт.

Расследование определило, что эти 5 ракет — edge case того, как лучи солнца падают на спутник на орбите Молния. Таким образом, Петров, не сделав ничего, подарил нам с вами мир, в котором мы живем. Хотя злые языки говорят, что он тогда был в стельку пьян. Но это не отменяет того, что даже будучи пьяным, ты можешь спасти миллиарды людей.

9. Пациентка Jenny (имя заменено в отчетах) погибла от обезвоживания после химиотерапии. Причина оказалась до ужаса идиотской. Дизайн медицинской системы был настолько плох, что опытные медсестры просто не заметили пункта, который говорил, что для этого пациента необходимо вводить дополнительные элементы сразу после операции.



10. Шестеро велосипедистов сошли с дистанции гонки в Осло в 2014 году. Оказалось, что велосипедисты выпили жидкость для мытья пола, решив, что это энергетик. Дизайн упаковки тоже имеет значение.



11. Два солдата армии США погибли во время учений артиллерийских подразделений. Солдаты понадеялись на данные тактической системы, но не знали, что, если не задать высоту цели — система считает ее равной 0. Вот тебе и рокетджамп.

12. 1994 год, борт авиакомпании China Airlines потерпел крушение и унес жизни более чем 250 человек. При приземлении второй пилот случайно включил автопилот, который начал вносить коррективы в действия пилотов. При снижении пилоты заметили это и смогли выключить автопилот, но, к сожалению, рассинхронизация действий людей и автопилота привела к крушению. При расследовании также была найдена ошибка, патч для которой уже был написан. Борт, потерпевший крушение, был запланирован на апдейт системы сразу после окончания рейса, который, к сожалению, так и не закончился удачно.

13. Knight Capital в свое время перепутали деплои и вместо тестового енва задеплоили новую версию на продакшен. Система думала, что тратятся виртуальные доллары, а на самом деле Knight потеряла 460 миллионов долларов за 45 минут. Скидывались на спасение Knight всем селом.

14. 2015 год, грузовой самолет испанских военно-воздушных сил потерпел крушение около Севильи. Авария была вызвана ошибкой ПО и унесла жизни 4 человек. Airbus после этого случая отозвала все самолеты A400 на проверку. Проблема заключалась в новой версии софта по контролю топлива в двигателях. Система подавала топливо, но очень медленно, от чего 3 из 4 двигателей отключились.

15. 1998 год, один из спутников Nasa, отправленный на Марс, достиг орбиты красной планеты и взорвался. Была ошибка в двух модулях ПО спутника: один ждал данные в метрической системе, а другой отдавал в имперской :) Не додебажили на 327 лямов.

16. Как рассказывает SIG, один из самолетов F-14 разбился вследствие того, что случилась системная ошибка, но программист не обернул ее в catch. Это привело к полному отключению бортового компьютера. Пилот катапультировался, но самолет, конечно же, не спасли.

17. Кибервойна, или взрыв, который было видно из космоса. В 1982 ЦРУ внедрило шпиона в канадскую фирму по разработке софта для газопроводных систем, потому как знало, что этот софт будет использован СССР. Программист-шпион написал методы, из-за которых в 1982 году газопроводная труба взорвалась так сильно, что взрыв можно было наблюдать из космоса. К счастью, никто кроме оленей не пострадал.

18. Ракета Ариана 5, разработка которой стоила около 8! миллиардов долларов, должна была вывести на орбиту несколько спутников и другое оборудование. Полет ракеты завершился через 4 секунды после взлета. Она упала. Один из модулей системы попытался сконвертировать 64-битное число в 16-битное. Оно оказалось больше, чем влезало в память, и модуль завалился. Но ведь есть дублирующий модуль, которому было передано управление! На нем была та же версия ПО, которая попытался сделать то же самое.

19. Ночь живых мертвецов. 2003 год, St. Mary’s Mercy Hospital. Из-за ошибки случайно «убило» все 8500 пациентов. Система была умна, и как только пациент умирает — она сразу оповещает все службы: от полиции до страховой. Не странно, что все немного перепугались от внезапной масакры.

20. 1982 год, миноносец морских сил Великобритании был поражен ракетой, выпущенной из аргентинского самолета. Противоракетная система не сработала, погибло 28 человек. Во время постройки миноносца произошел взрыв и погибло два строителя. Поврежденная часть корабля была заменена частью с идентичного аргентинского корабля. Когда система обнаружила ракету, она провела проверку на свой-чужой. А так как замененная часть корабля была аргентинская, ракета была определена как своя. Кэш — это не шутки :) Противоракетная оборона не сработала, потому как ожидала, что ракета пролетит. Но нет.

21. 1994 год, вертолет модели Chinook разбился, даже не смотря на управление очень опытным пилотом. Погибли 29 человек. Расследование очень долго пыталось скинуть всю вину на пилота, но в результате были найдены ошибки в системе управления двигателями. Также были проблемы в работе датчика высоты с одновременно включенным радио вертолета. А мне не верили, что в Samsung компанс со спотифай не работает :)

22. Панама-Сити, докторам радиологам доставили новое медицинское оборудование, которое позволяло выставлять 4 блока, защищающие человека от радиации, и делать очень точные снимки. Система разрешала использовать не более 4 блоков, но доктора решили, что могут обмануть систему, если совмещать 5 блоков, с дыркой посередине. Но только никто не сказал медикам, что в зависимости от того, в какую фигуру складываются блоки — такой силы луч используется для снимков. Как результат — 10 смертей и 19 человек получили сильнейшее отравление радиацией.

23. Новейший в свое время самолет F-18 «превращался в тыкву» для системы, когда пересекал зону смены часового пояса с разницей в день (к примеру, полет с Гаваев в Японию). Система не рассчитывала, что может попасть в прошлое, потому 127-миллионный самолет мог упасть в любой момент. Благо, помогал reset.

24. Фобос-1, спутник СССР, был направлен на изучение Марса. В 1988 году неправильная команда, запущенная с Земли, активировала тестирующий код, который никогда не должен был бы выполниться. Это привело к тому, что спутник потерял возможность ориентироваться в космосе. У него села батарея, и он был навсегда утерян. Смешно то, что тестирующий код оказался там из-за спешки, но программисты заверили, что он никогда не выполнится. Выполнился.

25. День, когда AT&T остановился. 1990 год, новый патч для свичей AT&T. Естественно, компания не может апдейтить сразу все свичи, иначе вся сеть упадет. Потому по новой версии софта, один из свичей в Нью-Йорке начал процедуру апдейта и отправил всем ближним сообщение об этом. После апдейта загрузился и сообщил, что на месте. Так уж получилось, что, получив второе сообщение от свича из Нью-Йорка, другие свичи начинали процедуру self-testа, о чем сообщали ближайшим свичам, и отключались. При включении делали то же самое. Вся сеть AT&T каскадом завалилась на 8 часов, отключая своих пользователей от телефонов, и не имея возможности обработать запросы.

26. 1997, американский авианосец USS Yorktown остановился и отказался плыть дальше. Пришлось вызывать буксир. Оказалось, что программист ввел в базу один параметр как 0. Все остальные системы пытались пользоваться этой переменной, что вызывало деление на 0. Смешно, но система обновления базы тоже смотрела на этот параметр.

27. 1962 год, спутник Mariner 1 внезапно полетел совсем не в ту сторону, куда ожидалось. Центру полетов пришлось самоуничтожить его над Атлантическим океаном. Расследование показало, что формула была запрограммирована неправильно, потому как у ученого, писавшего ее на доске был плохой почерк, и программисты неправильно ее закодили :)

28. Баг в ПО Toyota вызывал внезапную остановку транспорта, что привело к смерти 89 человек. Самое интересное, что, когда начали расследование, эксперт заключил, что код у Toyota — совсем говно, разобраться нереально, и все держится на честном слове. Оказалось, что у Toyota использовалось около 350 ассемблерных функций, которые выполнялись при переключении операций, которые никак не синхронизировались. В определенных случаях это приводило к полной остановке автомобиля.

29. 5 декабря 2010 года. Российский ракетоноситель Протон-М пошел на дно океана с тремя спутниками Глонасс-М. Причина — неправильная формула, которая превысила массу одного из заправленных баков на более чем полторы тонны. Как оказалось, формула была исправлена и даже была заведена в систему как изменения, запланированные для реализации. Но когда подошли сроки — многие задания закрывали как неважные. Дозакрывались. Подумайте в следующий раз, когда таску в Jira закрываете :)

30. Один из самых известных блогеров Джошуа Браун взорвал в свое время интернет своими видеообзорами Теслы. И, конечно же, фанател от автопилота, пока в один день Тесла на полной скорости не врезалась в фуру. Джошуа погиб на месте. Как оказалось, машина с прицепом, ехавшая впереди Теслы, перестраивалась в другую полосу, от чего сбросила скорость. И тут в нее прилетела Тесла под управлением автопилота. Как выяснилось, Джошуа совершенно не следил за дорогой, а автопилот не заметил прицеп, и смешал его с небом. Тесла рекомендовала, что автопилот нужен для помощи водителям, но никак не замены их полностью.

31. Индиана, 2003 год. Инженер, который занимался поддержкой энергооборудования сети, заметил небольшую поломку. Его прям очень раздражал звуковой сигнал, которым система оповещала о проблеме. Недолго думая, инжинер отключил звук оповещения и спокойно окончил работу. Конечно же, он забыл ее включить обратно и никому не сказал. После этого дерево, упавшее на линию передач в Огайо, порвало линии электропередач, отключив и соседние регионы. Система оповещения пыталась мигать красным, но звуку не издавала. Результат? 55 миллионов человек без электричества. А ведь могли включить звук хотя бы через полчаса трезвона :)

32. 7 октября 2008 года самолет, совершавший рейс Singapore — Perth, внезапно начало трясти. На самом деле нет, но все так казалось. Через 3 часа полета внезапно отключился автопилот, и пилотов засыпало ошибками. Через 5 минут капитан корабля отключил автопилот и попытался разобраться, что же случилось. Внезапно нос самолета накренился на 8.4 градуса, от чего пассажиры в салоне, которые не были пристегнуты в тот момент, встретились головой с потолком самолета. Результат — 112 человек получили ранения.

Расследование показало, что один из процессоров, которые отвечали за обнаружение критических ситуаций, внезапно выдавал неправильно значение, вероятнее всего, из-за производственного брака, но сразу же после него выдавал верное. Система, получив неправильное значение, выставляла его как неверное, но, сразу же получив верное значение, ставила предыдущее в верное. Из-за этого самолет косплеил сериал «Крутое Пике».

33. 14 сентября, 2004 года. Без какого-либо предупреждения радиорубка управления перелетами в аэропорту Лос-Анджелеса потеряла голосовую связь с более чем 800 самолетами. Запасная система связи отвалилась через минуту после запуска.

Как оказалось, в основной системе были тики таймеров, которые начинались с самого высокого числа (2 в 32 степени). Служили они для идентификации сообщений и синхронизации. Каждое новое сообщение просто уменьшало таймер на 1. Когда же количество тиков достигло 0, оказалось, что система не может дальше продолжать отсылать сообщения. Чтобы отправить 2 в 32 степени сообщений, необходимо около 50 дней. Теперь, процедура безопасности требует перезагрузку системы каждые 30 дней :)

34. American Airlines допустили ошибку в разработке системы планирования отпусков для пилотов. Оказалось, что кто-то забыл поставить лимит на взятие отпусков в Рождественский период. Чем и воспользовались пилоты. Кому летать 15 000 запланированных перелетов — стало большим вопросом для компании, и пришлось торговаться. Каждый пилот, который вышел на работу в этот праздничный сезон, получил в полтора раза больше отпуска :)

35. Про Хитроу вы, наверное, слышали, но там все, что только могло, пошло не так. Просто реальный пример закона Мэрфи. Но почитайте, конечно же.

36. Конечно же, нельзя обойти вниманием известный баг Y2K, при котором до 2000-х программисты использовали 2 цифры для обозначения года, к примеру 97 == 1997, для экономии памяти. Никто не ожидал, что компьютеры протянут так долго. В целом журналисты прогнозировали чуть ли не апокалипсис, но с помощью фиксов, а часто и говна с палками худо бедно к проблеме 2000 года мы подошли подготовленные, апокалипсис не случился, но попереживали знатно.

37. В 2011 году более 400 заключенных были освобождены раньше срока из тюрем Калифорнии вследствие ошибки в ПО. Штат пытался освободить место в тюрьмах, где его, собственно, уже не хватало. Для выбора самых неопасных преступников был запущен скрипт, который в одной из внутренних систем брал состояние дел заключенного, и по этим делам выставлял «рейтинг опасности». Так как многие из заключенных были в различных бандах или наркокартелях, информации про них было немного, от чего скрипт решал, что заключенный не опасен. Потому 450 опасных преступников были выпущены на свободу раньше срока. А мы для этого Савченко спасали! :)

38. Не баг, а раздолбайство. У меня просто истории про баги заканчиваются :) 2014 год, случай назвали Murder in the Amazon Cloud. Code Spaces была компанией, которая предоставляла разработчикам возможность создавать свои репозитории, хостить код и минимальный софт для PM.

Вся инфраструктура системы была хощена на Амазон. Нет, Cloud Space не взломали, а просто получили доступ к админке AWS. После чего начали требовать выкуп, чтоб вернуть доступ. Code Spaces постарались своими силами вернуть доступ к админке, вследствие чего захватчик начал удалять ресурсы, бакеты в S3 и так далее. Code Spaces надеялись восстановить все с бекапов, но, к сожалению, бекапы тоже управлялись все с той же консоли. От полученных травм Code Spaces так и не отошли и после не долгих разбирательств канули в Лету.

39. Студент Роберт Моррис (один из сооснователей Y-combinator и вообще достаточно известная личность) в 1988 году во время обучения в Cornell University написал программу, которая впоследствие стала известна под именем Morris Worm. Сама программа была написана, как утверждал автор, для вычисления размера интернета! Червь использовал сразу несколько дырок в Unix-системах и распространялся по сети. В черве была проверка — или система уже заражена. Но Моррис был уверен, что некоторые администраторы будут обманывать червь, всегда говоря, что система заражена, поэтому в 14% случаев червь копировал сам себя.

Моррис немного промазал, и червь начинал настолько нагружать систему, что ею стало невозможно пользоваться. 7 марта 1991 года оценка ущерба от червя составляла более чем 100 миллионов долларов. Моррис получил штраф в 10 500 долларов, 400 часов общественных работ и 3 года условки. А я еще над Януковичем смеялся.

40. Lockheed Martin F-35 Lightning II. Истребитель бомбардировщик 5-го поколения, разрекламированный 26 октября 2001 года. Машина смерти в воздухе, которая должна была быть выпущена в 2008 году и стоить всего-ничего от 40 до 50 миллионов долларов.

Шел 2018 год. Самолет F-35 был использован в бою всего лишь дважды. Система управления, запланированная самолетом, настолько сложна, что пока не очень позволяет ему стрелять, получать координаты и вообще делать хоть что-то. На данный момент осталось починить всего лишь 263 высоко приоритетных бага, и тогда уже можно приступать к лабораторным тестам. Кстати, на разработку самолета потратили уже 133 миллиарда долларов. Что вы знаете про долгострои?

41. Самый большой случай потери персональных данных — это, конечно же, взлом Equifax. Во фреймворке Apache Struts был обнаружен баг, который так же быстро был починен, а именно 6 марта. Баг привел к тому, что можно было выполнять так называемые RCE атаки (remote code execution). Сразу же после фикса хакеры начали бомбить сайты в интернете в поисках затупивших админов, которые забыли обновить версию Struts. Взлом Equifax был как раз сделан с помощью этого бага.

Но есть одно «но». Взлом был сделан в середине мая. Что приводит нас к тому, что админы Equifax за два месяца не удосужились накатить патч. На секундочку, Equifax занимались кредитной историей, а значит знали вот прям самые-самые персональные данные своих пользователей. Как взлом Equifax аукнется в ближайшие годы, еще совсем неизвестно.

42. Самый защищенный на свое время Windows NT.



43. Сингапур, 2017 год, 15 ноября. Многие слышали, что метро в Сингапуре практически полностью автоматизировано. Шутка ли — лучшая транспортная система в мире! Но 15 ноября два поезда не договорились. Вернее, баг в системе коммуникации двух поездов привел к тому, что поезд, который подъезжал к остановке, неправильно определил поезд, который на остановке, собственно, стоял. Вместо 6-вагонного поезда, он определил его как 3-вагонный и уже на замедляющейся, но все же большой скорости влетел в мирно стоящий поезд. Итог — 29 пострадавших, но хорошо, что никто не погиб.

44. Когда Steam выпустили на Linux и вы переносили папку с играми из дефолтного места, вы сильно рисковали потерять все данные из-за одного из скриптов в стиме, выполнявших команду rm -rf "$STEAMROOT/"* . Если вы переносили папку, то STEAMROOT оказывался равен пустой строчке, которая превращала все в команду rm -rf "/"* . Жертва зарепортила баг 14 января 2015 года :)

45. ВВС США вообще очень любят жить на широкую ногу. Начало 2000 года ознаменовалось тем, что был запланирован гигантский проект по разработке новой ERP системы, которая должна была заменить более чем 200 устаревших систем. И вообще сделать жизнь работников, если уж не раем, то с кисельными берегами и молочными реками.

2005 год, на разработку системы было уже потрачено более чем 1 миллиард долларов. Как раз, чтобы спикер ВВС США заявил, что с оценкой проекта немного промазали, и необходимо еще более чем 1.2 миллиарда, чтоб запилить четверть от запланированного объема, до 2020 года. Вы только вдумайтесь в горизонт планирования IT-проекта на 20 лет вперед. Промазали они, наверное, потому, что скрам не использовали :)

46. И немного о будущем! Если вы думаете, что мы пережили баг 2000 года и все дальше будет хорошо — нет :) Нас еще ждет 2038 год. Так уж случилось, что время в Unix-системах отмеряется в секундах, прошедших от 1 января 1970 года.

А именно 19 января 2038 года пройдет ровно 2 147 483 647 секунд от стартовой даты, что не влезет в обычное 32-битное число. Казалось бы, все можно починить, но вы даже не представляете, сколько в мире всего работает на легаси системах. Собственно, меньше чем через 20 лет эта проблема затронет ну очень большое количество систем, устройств и даже структур данных, которыми мы пользуемся сейчас.

47. В самолетах модели Boeing-787-Dreamliner был баг, который мог отключить подачу энергии на самолет, в независимости от фазы, в которой самолет находился. Но только после 248 дней работы. Причина — все то же 32-битное число, которое заканчивается. Именно через 248 дней будет число сантисекунд (0,01 секунды), которое не влезет в 32-битное число и приведет к полной потере управления самолетом. К счастью, данный баг был обнаружен быстрее падения первого боинга.

48. 1995 год, аэропорт Денвера представляет проект самой сложной в мире системы автоматической доставки багажа. Цена разработки системы — 200 млн долларов, время разработки — 2 года, рекламы — бесценна. Когда систему открыли, она внезапно начала вытворять с багажом такие непотребности — выкидывала багаж, выстреливала им на ленту доставки и просто зажевывала, — что ее назвали «baggage system from hell». Телевиденье и репортеры яростно смаковали картинки разодранных чемоданов, раскиданных вещей и поломанных планов на отпуск.

Доработка системы заняла 16 месяцев, что стоило аэропорту Денвера более чем 1.1 млн долларов в год. Аэропорт открылся таки в 1995 году, но багаж доставлялся старым добрым методом рабочих, мата и тележки. Часть системы все же пользовалась, но была очень дорога в эксплуатации. Ежики кололись, плакали, но продолжали заниматься любовью. По итогу, потратив 600 миллионов вместо запланированных 200, система была заброшена и отключена аж в 2005 году.

49. 2013 год, обычный парень Крис Рейнольдс, торгующий запчастями для BMW, утром 13 июня проснулся и проверил свой счет в PayPal. Всего лишь за одну ночь бедняга Крис стал в 1000 раз богаче, чем вся человеческая цивилизация. Счет PayPal показывал ему чудесную цифру в 92 квадриллиона долларов. Естественно, в PayPal быстро нашли и исправили ошибку, вернув Криса на землю, но он сыскал не абы какую популярность и был приглашен на многие телешоу! Когда же у него спросили, что бы он сделал со всеми этими деньжищами, Крис скромно ответил, что выплатил бы государственный долг :) Жаль, только виртуальными деньгами пока не принимают.

50. Считайте юбилейная! Расскажу вам байку из своего опыта. В году так 2009-м писал я с командой софт для управления сетевыми устройствами. Когда я говорю про управление — это скачивание конфигурационного файла, допустим, с роутера, изменение его и закачка обратно.

Так работало большинство устройств, но некоторые настраивались через так называемые MIB деревья, или же просто через меню по SSH соединению. Так вот, чтобы что-то менять в устройствах по SSH, мы посылали команды: стрелка вниз, вверх, энтер. Прям как комбинации в Mortal Combat.

Цель, конечно же, была — добраться до пункта меню: скачать файл. Собственно, комбинации подгружались с шаблонов команд в зависимости от модели сетевого устройства. Итак, история :) Пишет нам заказчик: «Я администратор в аэропорту. Пользуюсь вашим софтом и пытаюсь настроить один роутер. Но когда я пытаюсь скачать конфиг, ваше приложение перегружает главный роутер, и весь терминал аэропорта погружается в интернет-тьму. И даже пропадает связь с самолетами...». Суть до дела, был неправильный конфиг :) Но, к счастью, обошлось без жертв. Пронесло!

Dima Maleev


promo ibigdan december 3, 2007 00:08
Buy for 1 500 tokens
Если вы хотите сделать хорошую рекламу вашему продукту или услуге - вы зашли по адресу. Блог "Самый сок!" читают во всём мире. Среднее количество просмотров на каждый пост - 50 тысяч, среднее количество просмотров блога в месяц - 4-5 миллионов. Изучить аудиторию блога в разных разрезах можно в…

yizhack 13 марта, 15:26
Help Topic в NT доставил безмерно )

dennis_sch 13 марта, 15:53
Старая тема, можно было очень неплохо порезвиться на админских машинах.

Alex Krotevich 13 марта, 15:30
"Поврежденная часть корабля была заменена частью с идентичного аргентинского корабля. Когда система обнаружила ракету, она провела проверку на свой-чужой. А так как замененная часть корабля была аргентинская, ракета была определена как своя."

Что за бред???

dennis_sch 13 марта, 15:52
Ну, про Шеффилд на Фолклендах, ЕМНИП до сих пор нет однозначного ответа. Там и ошибка оператора, и неготовность к ракетной атаке. Почему бы и не про запчасть с аргентинского корабля класса тоже Шеффилд? Тем более, у Аргентины был то ли один, то ли два такой кораблик.

a_garvey 13 марта, 15:52
Только вчера получил от знакомых:
старые джи-пи-есы могут перестать работать в апреле:
https://www.pcmag.com/news/366521/your-gps-devices-may-stop-working-on-april-6

Пара примеров из комбинации программного и человеческого фактора:
Gimli Glider: https://en.wikipedia.org/wiki/Gimli_Glider
Благодаря мастерству пилотов обошлось без жертв

В 2013-от году американская торговая сеть Target пыталась зайти в Канаду. Одной из проблем, с которой компания столкнулась, была новая программа, которая должна была отслеживать заказ, наличие и распределение товаров. Итог: все 133 магазина сети были закрыты в 2015-ом году.

dennis_sch 13 марта, 15:56
А еще помню целую подборку багов, связанных с переходом через нуль - высот полета самолетов (Мертвое море), дат (Линия перемены дат) и прочего. Последовательное приращение и деление на нуль всегда, бля, должны быть обернуты в эксепшн. Не обернул - облажался.

mfi 13 марта, 21:34
Про переход через линию смены дат - написано. Про Мертвое море - хотел сам добавить - взамен номера 40 который явный бред. Потому что машины летают в куче армий уже и пилоты стоят в Аочереди на

Самый защищенный на свое время Windows NT

mctsimco 13 марта, 15:59
Проводник в NT - блин, ржу уже 10 минут, сбейте меня палкой! :)

Re: Самый защищенный на свое время Windows NT

rvun 13 марта, 16:42
яка вінда була, після 95-ї, ця ваша NT-я. Я відразу з неї перегріб вже на 8-ку і те, через те, що нова жаба почала писати, шо встановлення на цю ОС не можливе. Продукт був на свій час, мені навіть ХР куди менш подобалась з усіма свістопєрдєлками.

art_kom 13 марта, 16:04
1979 год. Пенсильвания чуть не стала еще одним Чернобылем,

79-ый год ну никак не сочитается с "еще одним" Чернобылем который был какбэ попозже 79-го...

diablas 13 марта, 16:12
Это оборот речи, такой же, как и "Янукович - второй Зеленский".

diablas 13 марта, 16:09
Подборка отличнейшая, но стоит признать, что многие из описанных багов не являлись багами программистов, а человеческим фактором обслуги. ну вот те врачи, которые 5 коробок вместо 4 воткнули - программисты-то тут при чем?

Но подборка да, интересная, спасибо!

Burn 13 марта, 16:38
Мало того, много в описаных случаях не имеет ничего общего с действительностью

דניס בריזגונוב 13 марта, 16:11

>> Чтобы отправить 2 в 32 степени сообщений, необходимо около 50 дней. Теперь, процедура безопасности требует перезагрузку системы каждые 30 дней :)

Пластырь. При чуть более интенсивном трафике сообщений ноль достигнется быстрее, чем за 30 дней и система снова грохнется. Люди ничему не учатся :)


diablas 13 марта, 16:14
Ну так 20 дней запаса ж есть - то есть почти двухкратный запас.

דניס בריזגונוב 13 марта, 16:17

>> Шел 2018 год. Самолет F-35 был использован в бою всего лишь дважды. Система управления, запланированная самолетом, настолько сложна, что пока не очень позволяет ему стрелять, получать координаты и вообще делать хоть что-то. На данный момент осталось починить всего лишь 263 высоко приоритетных бага, и тогда уже можно приступать к лабораторным тестам...

Вот ВВС Израиля щас в глубоком недоумении: у них-то он и летает, и стреляет, и делает всё, что от него требуется, и вообще все им там очень довольны. Видимо, какой-то не тот Ф трядцатьпятый закупили :))))


rvun 13 марта, 16:49
Це кацапська байка. В кацапів лише аналоговнєт, нічо не лишається, як розповідати про хромого пінгвіна. Думаю, покаже себе літак ше на всю котушку, американці проектували все від аеродинаміки до систем зброї і керування з застосуванням самих останніх методів моделювання - думаю, самий вилизаний в усіх відношеннях винищувач буде.

qmellory 13 марта, 17:58
машина с прицепом, ехавшая впереди Теслы, перестраивалась в другую полосу, от чего сбросила скорость.

Когда уже в автошколах начнут учить, что при перестроении скорость нужно увеличивать?

vaquero1978 13 марта, 19:52
21. Мы как-то заметили что контроллер конденсаторной батарии врет если рядом используется рация

28. Моя Королла так почти останавливалась посреди дороги. Оказалось что что-то было в бортовом компьютере, который обрабатывал усилие на педали газа в подачу топлива.

31. Однажды к нам обратились по поводу поломки трансформатора, который "вышел из строя". Оказалось там зрел пиздец связанный с межвитковыми кз и защита по газу отключила транс. Местные работники ресетили защиту несколько десятков раз, пока не поджарили нутро окончательно

vladicusmagnus 13 марта, 20:09
Давным давно уже для таких "приколов" с переполнением используют цикличную запись. Потому влиять не могет.

Далее. На многих указанных леталках железо СОВСЕМ другое, и посему там вообще танцы с бубнами нужны (и уж проверку там сделают).

Короче я б сказал процентов 30% что то что было, остальное байки, уровня 2000 года (собсно кто с компами работал особо не парился, с чего бы это?). А вот UTС это совсем смешно. При рекомпиляции на стандартном longlong даст точность разрешения с нормальным таймером, а не калечным юниксовским, по частоте процессора. Точнее ядра процессора. Ежели кому такая точность вот прям загорится.

Скучно.

greenvoid 13 марта, 21:14
Так и современный unixtime уже 64bit, только перекомпиляция не всегда возможна.

А еще с SSL/TLS уже проблемы - старые системы не умеют в TLS1.2 а новые сервисы уже отключили SSL2 и TLS1.0

im_a_sandman 13 марта, 22:51
Набор баек с туповатым юмором.
А некоторые факты вообще перевраны - у Тойоты были проблемы не с внезапной остановкой, а с внезапным ускорением.

microcell 13 марта, 22:55
Я как-то использовал advantage db для хранения логов одной сисиемы. Не дочитал док об ограниченичх на размеры таблицы. В итоге, в какой-то момент, таблицы логов стали на столько большими, что добавление новой строчки занимало несколько минут. Пришлось фиксить.

(Удалённый комментарий)
microcell 14 марта, 6:28
Это примерно как Адобе неолайновский софт правками угробил. А началось вроде с того, что поменяли в базе по умолчанию datetime на datetimetz. Адобе же вроде как трансатлантическая компания. Только вот не везде поменяли и начались приколы.