К чему приводит ошибка в коде: 5 странных багов из истории программирования

Рассказываем, как из-за дефектного обновления люди не могли улететь вовремя, а баг в игре World of Warcraft способствовала борьбе с пандемией.

К чему приводит ошибка в коде: 5 странных багов из истории программирования

Привет! На связи компания Selectel, и мы продолжаем изучать историю IT-технологий. В 1947 году команда разработчиков исследовала сбой в работе компьютера Mark II и обнаружила внутри насекомое: оно застряло между контактами. С тех пор слово bug (в переводе — «жучок») стали использовать как обозначение ошибки в программе. О самых необычных рассказываем в тексте.

Используйте навигацию, чтобы не читать текст полностью:

Обновление от CrowdStrike: из-за ошибки программистов встала работа аэропортов

В двух словах. Компания по кибербезопасности CrowdStrike выпустила обновление, из-за которого «легли» компьютеры на Windows по всему миру.

Как обнаружили баг. Пятничным утром 19 июля 2024 года корпоративные пользователи стали сообщать о «синих экранах смерти». На компьютерах была установлена защитная программа CrowdStrike Falcon. Так как программу использовали большинство зарубежных организаций, сбой стал массовым. Встала работа как в правительственных учреждениях, так и в коммерческих компаниях.

<i>Вот что увидели на своих компьютерах служащие компаний по всему миру. Забавные фотографии на фоне синего экрана быстро облетели весь интернет. Из-за сбоя у многих случился внеплановый выходной. <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fanswers.microsoft.com%2Fen-us%2Fwindows%2Fforum%2Fwindows_10-windows_install%2Fblue-screen%2F4d357884-9462-4bce-a0c5-c095f4bfefa4&postId=1718377" rel="nofollow noreferrer noopener" target="_blank">Источник</a>.</i>
Вот что увидели на своих компьютерах служащие компаний по всему миру. Забавные фотографии на фоне синего экрана быстро облетели весь интернет. Из-за сбоя у многих случился внеплановый выходной. Источник.

Проблему вызвало обновление ПО CrowdStrike. Глава компании заявил, что был обнаружен дефект в коде: причиной массовых сбоев стал файл Channel File, который содержит данные для Falcon Sensor.

Обновление быстро отозвали. Компания дала пользователям инструкцию, как восстановить систему. Для этого нужно было перезапустить Windows в безопасном режиме и удалить несовместимый файл.

<i><a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fwww.404media.co%2Fto-fix-crowdstrike-blue-screen-of-death-simply-reboot-15-straight-times-microsoft-says%2F&postId=1718377" rel="nofollow noreferrer noopener" target="_blank">Еще одно решение от Microsoft</a> — перезагрузиться несколько раз. В некоторых случаях требовалось до 15 перезагрузок, чтобы лайфхак сработал. <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fwww.yaplakal.com%2Fforum40%2Fst%2F780%2Ftopic2648837.html&postId=1718377" rel="nofollow noreferrer noopener" target="_blank">Источник</a>.</i>
Еще одно решение от Microsoft — перезагрузиться несколько раз. В некоторых случаях требовалось до 15 перезагрузок, чтобы лайфхак сработал. Источник.

Сложность состояла в том, что в больших корпорациях перейти в безопасный режим самостоятельно практически невозможно: нужна помощь сисадмина. Обновление выкатили в пятницу, времени на исправление ошибки было слишком мало, поэтому специалистам пришлось восстанавливать компьютеры все выходные.

К чему это привело. Пострадали медицинские центры, банки, магазины и даже нью-йоркское метро. Больше всего проблем было у авиакомпаний: многие рейсы задержались, а люди не могли забронировать билеты. В Индии и Франции даже заполняли посадочные талоны вручную.

Из-за происходящего временно упали акции CrowdStrike и Microsoft: доверие к компаниям снизилось. Предположительные потери составили около 16 млрд долларов.

Инцидент подчеркнул, насколько критичными могут быть последствия багов, даже если они вызваны штатным обновлением ПО. Компании убедились в важности тщательного тестирования перед релизом.

Апдейт Windows 10: пользователи остались без интернета, мыши и клавиатуры

В двух словах. Обновление для Windows 10 вывело из строя основные элементы системы. Чаще всего пользователи жаловались на неработающий «Пуск», строку поиска, интернет и USB-устройства.

Как обнаружили баг. 10 сентября 2019 года Microsoft выпустила злополучное обновление. Изначально оно должно было исправить ошибки при подключении звукового устройства Bluetooth, но в итоге добавило пользователям проблем. Они проявлялись по-разному, например:

  • слетал интернет: система не распознавала адаптеры связи;
  • не работал браузер Edge и Центр поддержки;
  • из-за повышенной нагрузки перегревался процессор;
  • не воспроизводились звуки;
  • система не видела внешние USB-устройства: мыши, клавиатуры.

Чтобы возобновить нормальную работу, нужно было удалить обновление или откатиться к предыдущей точке восстановления. Официально в Microsoft ошибку не признали, заявив, что не обнаружили значительных проблем с «Пуском» или «Поиском». А часть трудностей предложили устранять пользователям вручную с помощью инструкции на странице обновления.

К чему это привело. Глобально последствий не было. Этот случай с Windows 10 далеко не единственный, в том же 2019 году из-за обновлений «летели» антивирусы, Excel, Internet Explorer. Чаще всего такие проблемы удается решить выпуском исправлений либо откатом к предыдущему состоянию.

Хотя компания и подвергается критике из-за таких случаев, а ее репутация снижается, лишь немногие пользователи отказываются от Windows в пользу других ОС.

Эпидемия в игре: старый баг WoW помог бороться с коронавирусом

В двух словах. Почти 20 лет назад из-за бага в игре World of Warcraft началась виртуальная эпидемия: персонажи вселенной стремительно теряли очки здоровья.

Как обнаружили баг. В 2005 году компания Blizzard выпустила новый патч для игры. В него входило много контента, в том числе и рейд под названием Зул’Гуруб. В финале игроков ждала встреча с драконом Хаккаром, который владел атакой «Порченая кровь». Это заклинание в течение 10 секунд отнимало очки здоровья у игрока и его союзников, находившихся поблизости.

<i>Атака была настолько мощной, что могла убить даже самых сильных персонажей. <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fcyber.sports.ru%2Ftribuna%2Fblogs%2Fpogorskythinks%2F2756009.html&postId=1718377" rel="nofollow noreferrer noopener" target="_blank">Источник</a>. </i>
Атака была настолько мощной, что могла убить даже самых сильных персонажей. Источник

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

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

Спустя неделю Blizzard пофиксила баг. Компания установила ограничение на заражение питомцев, чтобы «Порченая кровь» не могла проникнуть за пределы рейда. Для этого пришлось перезагрузить игровые серверы.

К чему это привело. Происходящее в мире World of Warcraft сравнивали с реальными эпидемиями, даже называли чумой в игровом мире. Ученые исследовали поведение игроков и делили их на разные группы:

  • одни спасались бегством от чумы;
  • другие пытались помогать персонажам, взяв на себя роль медиков;
  • кто-то специально посещал города, желая увидеть всё собственными глазами, — аналог журналистов из реальности;
  • наконец, последние занимались грифингом — специально заражали других.

Еще в 2007 году вышла научная статья, где сравнивали виртуальную чуму со вспышками атипичной пневмонии и птичьего гриппа. А в 2020 году из-за пандемии COVID-19 эти исследования стали вновь актуальными. Эрик Лофгрен и Нина Фефферман использовали полученные знания в борьбе с коронавирусом.

Например, поведение игроков во время чумы оказалось очень похожим на действия людей в режиме самоизоляции. До этого некоторые сомневались, что намеренное инфицирование, или грифинг, возможно в реальной жизни. Однако ученые провели параллель между этим явлением и сознательным игнорированием опасности заразиться или заразить других в пандемию.

Покемон, которого хотели поймать все: MissingNo. стал объектом научных исследований

В двух словах. В игре Pokémon появился баг, который стирал сохранения и вызывал ошибки в графике. Несмотря на это, многие хотели его поймать в надежде на дополнительные бонусы.

Как обнаружили баг. Эта ошибка стала одной из самых известных в истории игр. Впервые она упоминается в 1999 году в журнале Nintendo Power, посвященном видеоиграм. В выпуске рассказали, что после определенных действий игроки Pokémon могут столкнуться с покемоном-ошибкой под названием MissingNo. — «Отсутствующий номер».

<i>MissingNo. существовал в пяти разных формах: либо в виде пикселизованной буквы d, либо в виде одного из четырех покемонов, не задействованных в игре, — двух скелетов, призрака или глюка. <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Ftestit.software%2Fblog%2Fpost%2Frazdaem-medali-bagam-10-samyh-epichnyh-programmnyh-defektov-v-istorii&postId=1718377" rel="nofollow noreferrer noopener" target="_blank">Источник</a>.</i>
MissingNo. существовал в пяти разных формах: либо в виде пикселизованной буквы d, либо в виде одного из четырех покемонов, не задействованных в игре, — двух скелетов, призрака или глюка. Источник.

Чтобы появился MissingNo., должно последовательно произойти три игровых события. Нужно назвать героя определенным именем, пройти обучалку по ловле покемонов, а после отправиться в конкретную локацию и заняться там серфингом. Имя сохраняется в буфер обмена в шестнадцатеричной системе счисления, и игра считывает его как номер покемона, которого можно встретить в этой локации. Но если игра получает из буфера значение, которое не соответствует ни одному из покемонов, срабатывает функция, которая и вызывает появление MissingNo.

Встреча с MissingNo. вызывала графические ошибки и могла стирать сохранения, но при этом позволяла увеличить количество предметов в инвентаре и добывать редкие артефакты. Информация об этом быстро разлетелась по руководствам к игре, некоторые игроки даже давали платные консультации, как встретить покемона.

Nintendo предупреждала о возможных проблемах от встречи с MissingNo., но, несмотря на это, он полюбился многим игрокам Pokémon. Хотя он встречался только в первых двух частях игры, некоторые пытались перенести покемона и в последующие серии.

К чему это привело. Феномен MissingNo. стал настолько известным, что его исследовали даже социологи. Они проанализировали, как творчески игроки реагировали на появление бага.

Значительная часть фанатов была уверена, что разработчики специально создали MissingNo. С Pokémon началась так называемая охота на баги, когда игроки специально искали встречи с ними, чтобы получить особые артефакты или умения. Это также породило интерес к прохождению игр на скорость — что часто делают с помощью глюков и читов.

Профессор педагогики Джулиан Сефтон-Грин сравнивал использование этого покемона с развенчанием обмана. Он предложил оценить этот тезис своему сыну — и отношение ребенка к игре поменялось. Иллюзия игры как настоящего мира разрушилась, а на смену ей пришло понимание того, что это всего лишь компьютерная программа.

Кошка на клавиатуре: лапки привели к сбою компьютера

В двух словах. Система зависла из-за того, что кот прошелся по клавиатуре. Это стало настолько популярной проблемой, что ее описали на официальном форуме Ubuntu.

Как обнаружили баг. Это случилось в 2015 году. Однажды пользователь заблокировал экран и отошел пообедать. Пришел и увидел, что по клавиатуре топчется кошка, а система зависла. Пользователь отправил отчет в систему отслеживания, где сообщил об этом.

<i>Примерно такую картину увидел хозяин по возвращении с обеда. </i>
Примерно такую картину увидел хозяин по возвращении с обеда. 

Этот случай стал общеизвестным, когда его описали в баг-трекере Unity операционной системы Ubuntu. Его добавили, после того как с этой проблемой столкнулись многие юзеры.

Причиной бага стали множественные нажатия клавиш. Система не могла обработать их сразу, поэтому сохраняла в буфере обмена и постепенно вводила в окно пароля. В итоге, когда пользователь не мог даже открыть меню или нажать Esc, компьютер зависал из-за кучи символов «пароля», которые до него успел нажать котик.

Справиться с зависанием можно было по-разному. Иногда нужно было долго нажимать Esc либо просто выделить все символы в окне пароля и удалить их.

<i>Чтобы повторить баг, в описании советуют положить клавиатуру на стул и сесть на нее. <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fbugs.launchpad.net%2Fubuntu%2F%2Bsource%2Funity%2F%2Bbug%2F1463112&postId=1718377" rel="nofollow noreferrer noopener" target="_blank">Источник</a>.</i>
Чтобы повторить баг, в описании советуют положить клавиатуру на стул и сесть на нее. Источник.

К чему это привело. Забавная история стала поводом для шуток. Юзеры пробовали повторить баг и жаловались, что с собаками так не получится: у них не хватает терпения сидеть на клавиатуре. Другие смеялись, что всё зависит от массы кота и ее распределения по устройству.

Несмотря на шутки, такие ситуации не редкость. Похожий баг в том же трекере Unity был описан в 2016 году. После того как кот полежал на клавиатуре, система зависла, курсор перестал мигать, и простое нажатие Backspace не помогало. Один юзер посетовал на отсутствие Ctrl + Alt + Del на Ubuntu, которое спасало бы от таких ситуаций: случайно нажать эти клавиши очень сложно. Об истории этой гениальной комбинации мы недавно рассказывали в нашей статье.

Конечно, кошка не пыталась взломать пароль намеренно, но даже такая забавная ситуация — повод вспомнить, что нужно внимательно относиться к вопросам кибербезопасности. Как противостоять угрозам и оградить свои системы от атак и взлома, мы рассказываем на страницах Security Center от Академии Selectel.

Выводы: последствия багов

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

Последствия могут быть глобальные, как в истории с CrowdSrike, либо забавные, как в ситуации с котом на клавиатуре или покемоном MissingNo. А иногда баги даже помогают ученым — как ошибка в WoW стала предметом исследований в борьбе с коронавирусом.

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

Какие еще известные баги вам знакомы? И с какими ошибками программистов вы сталкивались?

Больше полезных материалов по разработке — в Академии Selectel. Пригодится как новичкам, так и опытным специалистам.

3232
22
11
11
6 комментариев

читать про баги весело, но не хотелось бы пропустить свой рейс из-за такого вот сбоя)

Какой милый котик. По нему и не скажешь, что хакер)))

Так вот кто за всем этим стоит!

на старых айфонах был такой баг, которой превращал смартфон буквально в кирпич. надо было ввести на устройстве вместо даты 1 января 1970, перезагрузить его — и все, он больше не включался. лет 10 назад на эту тему можно было много шуток и пранков. многие хотели затестить правда это или нет, и в итоге им не до приколов было) об этом еще вилсаком в блоге у себя писал)

На работе пишу про баги, на vc читаю про баги