В 1990 году в коде коммутаторов AT&T была ошибка: программист использовал
break внутри switch, ожидая, что он прервёт только внутренний if, но в языке C break выходит из ближайшего switch целиком. Из-за этого при высокой нагрузке маршрутизаторы начинали бесконечно перезагружаться, передавая ошибку соседним узлам. За несколько часов сеть, считавшаяся сверхнадёжной, полностью рухнула.Последствия: 70 миллионов несбывшихся звонков, убытки в 60 миллионов (сегодня это более 120 млн) и 500 отменённых авиарейсов. Ошибка просуществовала в продакшене почти год и проявилась только при аномальной нагрузке.
Для начинающего разработчика это история о том, как важны знание языка, контроль качества и тестирование под нагрузкой, а также готовность к быстрому откату. Даже один
break может стать причиной грандиозного коллапса.Подробная хроника и технические детали — в материале: https://habr.com/ru/companies/beget/articles/1009300/
