US$ 440 milhões em 45 minutos por uma flag de código morto

Knight Capital Group · 1º de agosto de 2012

Impacto: Cerca de US$ 440 milhões perdidos em 45 minutos. A empresa, líder do setor, foi vendida meses depois.

O que aconteceu

A Knight ia ativar um sistema novo de roteamento de ordens. O código foi implantado em oito servidores de produção — mas um deles não recebeu a atualização.

O novo código reaproveitava uma flag de configuração que, anos antes, ativava uma funcionalidade chamada Power Peg — um código antigo, morto, que nunca fora removido. Nos sete servidores atualizados, a flag ativava a lógica nova. No oitavo, que continuava com o binário antigo, ela ativava o Power Peg.

Quando o mercado abriu, o servidor desatualizado começou a executar o código morto, comprando e vendendo em volume enorme e sem os limites que a versão nova impunha. Em 45 minutos foram milhões de ordens em 154 papéis.

Durante o incidente, a equipe reverteu a implantação nos servidores — o que espalhou o binário antigo para os outros sete, ampliando o problema em vez de contê-lo.

A linha do tempo

  1. T-7 dias

    Novo código implantado em 7 dos 8 servidores; o oitavo é esquecido.

  2. T+0

    Mercado abre; a flag é ativada.

  3. T+1min

    No servidor desatualizado, a flag ativa o Power Peg — código morto sem limites de posição.

  4. T+~20min

    A reversão da implantação espalha o binário antigo e piora o quadro.

  5. T+45min

    Sistemas desligados. Prejuízo de ~US$ 440 milhões.

A causa raiz

Três decisões estruturais se encontraram: código morto mantido no repositório por anos, uma flag de configuração reaproveitada para outro significado, e uma implantação sem verificação de que todos os nós receberam a mesma versão. Nenhuma delas isolada derrubaria a empresa.

Antes do incidente

O que você colocaria na pilha para conter o estrago?

O que mudou depois

  • A SEC usou o caso para reforçar exigências de controle de risco pré-operacional no setor.
  • Virou o exemplo canônico do custo de código morto e de flags reaproveitadas.
  • Implantação com verificação de versão em todos os nós passou a ser prática padrão na indústria.

Fonte: SEC — *Administrative Proceeding File No. 3-15570, In the Matter of Knight Capital Americas LLC*, 2013