>
>
Баги, которые наделали немало шума

Анастасия Воробьёва
Статей: 4

Баги, которые наделали немало шума

Реальный "баг", баг в коде или невнимательность — всё это может повлиять на ваш проект и привести к самым разным последствиям. В этой статье собран ряд масштабных и интересных багов. Время учиться на чужих ошибках!

Введение

Каждый может совершить ошибку. Это нормальное явление в нашей жизни. И всё бы ничего, но есть ошибки, которые стали масштабными и навсегда оставили свой след в истории Интернета. Сегодня мы поговорим про такие ошибки, а точнее про баги, которые привели к самым разным последствиям.

Реальный баг

Помните историю самого первого бага? 9 сентября 1947 года кое-что любопытное нашли операторы компьютера Mark II. Это что-то — моль. История гласит, что легендарная Грейс Хоппер, известная как "Amazing Grace" и "Grandma COBOL", обнаружила насекомое между точками на реле N70 панели F.

Так вот, в 2023 году произошла ситуация, напоминающая эту.

Эксперты из TechTuber NorthWestRepair на своём канале поделились видео, как они пытаются найти причину, из-за которой не работает видеокарта NVIDIA RTX 4090 Founders Edition. Владелец видеокарты говорил, что она подаёт "признаки жизни", однако изображение на монитор не выводилось.

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

После очистки тестирование показало, что видеокарта стала работать нормально.

Копипаста, которая не дала полететь в космос

Это история про ошибку, стоимость которой можно оценить в семь миллиардов долларов и 10 лет работы. Ведь именно столько было потрачено на разработку ракеты Ariane 5.

Ракета Ariane 5 — европейская одноразовая ракета-носитель. Она предназначена для вывода на околоземную орбиту средних или тяжёлых космических аппаратов. В создании ракеты принимали участие около тысячи промышленных фирм. Всё шло хорошо, однако не прошло и 40 секунд после взлёта, как ракета взорвалась. Это произошло 4 июня 1996 года.

На высоте 4000 метров Ariane 5 отклонилась от прямой траектории и самоуничтожилась. 13 июня 1996 года специально созданная комиссия приступила к расследованию крушения, а уже 19 июля был обнародован её исчерпывающий доклад.

Если кратко, то ошибка была со стороны разработчиков. Они скопировали код из управляющей программы предыдущей модели ракеты, которая успешно взлетала больше сотни раз. Однако они не учли, что Ariane 4 летела по другой траектории и с другой горизонтальной скоростью.

Фрагмент кода ракеты с ошибкой.

Подробнее об этом кейсе вы можете почитать в заметке "Космическая ошибка: 370.000.000 $ за Integer overflow".

"Купертино с нашими итальянскими товарищами было очень плодотворным"

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

Если вы изучаете английский, то вам наверняка знакомо слово "cooperation" (сотрудничество). По правилам английского языка ещё один вариант написания этого слова выглядит так — "co-operation".

Однако во многих словарях ранних версий систем проверки орфографии, например Microsoft Word, варианта "cooperation" не было в списке правильных слов. И все бы ничего, если бы умная система предлагала заменить этот вариант на вариант с дефисом. Но, вы будете удивлены, она предлагала заменять на "Cupertino" — название города в Калифорнии.

Поэтому в архивах НАТО, ООН и других организаций сохранились много документов со словом "Купертино" вместо "сотрудничество".

Один из примеров: "Купертино с нашими итальянскими товарищами было очень плодотворным".

Чёрный понедельник

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

Промышленный индекс Доу Джонса — один из нескольких фондовых индексов, созданных редактором газеты Wall Street Journal и одним из основателей компании Dow Jones & Company. В него заложена стоимость акций 30 самых больших американских компаний, например, Apple, Coca-Cola и Intel.

Падения индекса начались ещё в начале октября 1987 года. Причины назывались разные: военная эскалация в зоне Персидского залива, печальное известие о здоровье Первой леди Нэнси Рейган, ужесточение налогового законодательства со стороны Западной Германии и Японии и др.

И вот чёрный понедельник произошёл 19 октября 1987 года.

Так выглядит чёрный понедельник инвестора. Скриншот: Ycharts

Это был самый крупный обвал, который затронул не только США, но и такие страны, как Австралия, Канада, Великобритания и др.

После этого дня в падении стали винить непосредственно разработчиков. Хотя эксперты ещё спорят о его истинных причинах.

Но, по официальной версии, к кризису привела ошибка программного трейдинга. Дело в том, что специальная программа автоматически заключала сделки, чтобы инвесторам не приходилось постоянно следить за котировками и проводить все операции вручную. Машины ориентировались на движение рынка: индексы растут — закупаем, падают — продаём.

Когда рынок качнуло, машины одновременно стали продавать акции на миллионы долларов. Но покупать их было некому, и поэтому программа ещё больше снижала цену. За один день американский рынок акций потерял около 500 миллиардов долларов.

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

Немного криминала

В уже далёком 2015 произошёл сбой, который досрочно освободил 3200 заключённых из тюрем Вашингтона, США. На самом же деле эта проблема с системой длилась с 2002 года.

Компьютерная система, которая отвечала за подсчёт срока заключённых и их "бонусов" за хорошее поведение, функционировала неверно. В результате по вине программы заключённые в среднем не досидели около 49 дней. В итоге всё равно было принято решение вернуть некоторых осуждённых в тюрьму, а кого-то отправить на исправительные работы.

Какие выводы мы можем сделать из этой истории? Во-первых, это очередное доказательство того, что даже незначительная ошибка в коде программ может привести к серьёзным последствиям. Во-вторых, в погоне за автоматизацией процессов не стоит забывать об их тестировании.

Самый юный хакер в истории

Чаще всего, когда ребёнок маленький, родители включают на устройствах родительский контроль. Игровые приставки не являются исключением. Однако в истории нашёлся один ребёнок, которому удалось войти в учётную запись своего отца в сервисе Xbox Live.

Этот одарённый мальчик — Кристофер фон Хассель из Сан-Диего. Как же ему удалось взломать аккаунт своего отца Роберта? После неудачных попыток подбора паролей он просто несколько раз нажал на пробел, а затем на Enter. И, о чудо! У него получилось попасть в аккаунт отца.

Кристофер не сразу в этом сознался. Сам же Роберт работал в сфере информационной безопасности. Он восхитился открытием сына и отправил отчёт прямиком в Microsoft. Компания признала наличие уязвимости и исправила её.

Не дадим багам испортить проект!

Как мы видим из примеров выше, даже одна плохо написанная строчка кода может привести к печальным, а иногда и очень масштабным последствиям. Хотя иногда и реальные баги (например, мухи :)) тоже могут подпортить работу, благо это происходит редко.

Один из способов создавать более качественный и надёжный код — использование статических анализаторов, таких как PVS-Studio. Этот инструмент поддерживает анализ кода на языках C, C++, C# и Java.

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

Сообщество Вконтакте

Telegram-канал