Knight Capital Group: как «мертвый код» и старый флаг за 45 минут сожгли $450 млн
За 45 минут торгового дня 1 августа 2012 года алгоритмический торговый гигант Knight Capital Group потерял 450 миллионов долларов. Причиной стал не рыночный крах, а катастрофический сбой в собственном программном обеспечении, вызванный цепью технических ошибок и процедурных провалов. Инцидент, один из самых дорогостоящих в истории высокочастотной торговли, произошел из-за развертывания нового кода на устаревшую систему, где сохранился неиспользуемый «мертвый код» и старый флаг в бинарном протоколе.
Техническая цепочка сбоя началась с попытки переиспользовать старый, но все еще присутствующий в системе флаг «Power Peg» для новой функциональности. Этот флаг активировал давно неиспользуемый, но не удаленный «мертвый код», который отвечал за агрессивную покупку акций по рыночной цене без учета лимитов. Критической ошибкой стал деплой обновления: новая версия программного обеспечения была установлена только на семь из восьми производственных серверов. Восьмой сервер продолжал работать со старой версией, что привело к рассинхронизации и массовой отправке ошибочных ордеров.
Автоматизированные системы Knight начали бесконтрольно покупать и продавать акции, создав искусственный объем и исказив цены на десятках позиций. Компания была вынуждена вручную останавливать процессы, но убытки оказались фатальными. Этот инцидент не только обнажил хрупкость инфраструктуры высокочастотной торговли, но и привел к жесткому регуляторному вниманию к процедурам тестирования и развертывания ПО в финансовом секторе. Knight Capital, не сумев покрыть убытки, была вскоре поглощена конкурентом, что стало прямым следствием эпического программного бага.