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

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

![1114_bugs_ru/image1.png](https://import.viva64.com/docx/blog/1114_bugs_ru/image1.png)

## Введение

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

## Реальный баг

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

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

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

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

![1114_bugs_ru/image2.jpeg](https://import.viva64.com/docx/blog/1114_bugs_ru/image2.jpeg)

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

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

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

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

<https://www.youtube.com/watch?v=PK_yguLapgA >

На высоте 4000 метров Ariane 5 отклонилась от прямой траектории и самоуничтожилась\. 13 июня 1996 года специально созданная комиссия приступила к расследованию крушения, а уже 19 июля был обнародован её исчерпывающий [доклад](https://esamultimedia.esa.int/docs/esa-x-1819eng.pdf)\. 

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

![1114_bugs_ru/image3.png](https://import.viva64.com/docx/blog/1114_bugs_ru/image3.png)

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

Подробнее об этом кейсе вы можете почитать в заметке "[Космическая ошибка: 370\.000\.000 $ за Integer overflow](https://pvs-studio.ru/ru/blog/posts/cpp/0426/)"\.

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

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

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

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

![1114_bugs_ru/image4.png](https://import.viva64.com/docx/blog/1114_bugs_ru/image4.png)

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

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

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

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

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

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

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

![1114_bugs_ru/image5.png](https://import.viva64.com/docx/blog/1114_bugs_ru/image5.png)

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

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

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

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

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

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

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

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

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

![1114_bugs_ru/image6.png](https://import.viva64.com/docx/blog/1114_bugs_ru/image6.png)

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

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

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

![1114_bugs_ru/image7.jpg](https://import.viva64.com/docx/blog/1114_bugs_ru/image7.jpg)

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

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

< https://www.youtube.com/watch?v=VUxgcHydhcI&t=31s >

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

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

Один из способов создавать более качественный и надёжный код — использование статических анализаторов, таких как [PVS\-Studio](https://pvs-studio.ru/ru/pvs-studio/)\. Этот инструмент поддерживает анализ кода на языках C, C\+\+, C\# и Java\.

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

[Сообщество Вконтакте](https://vk.com/pvsstudio_rus)

[Telegram\-канал](https://t.me/pvsstudio_rus)