8台のサーバーのうち7台へのデプロイにより4億6000万ドルを損失。45分。
2012年8月1日、午前9時30分(米国東部標準時):米国株式取引全体の約10分の1を担うマーケットメーカーであるナイト・キャピタルは、8台あるSMARSサーバーのうち7台に新しい注文ルーティングコードをデプロイした。
2012年8月1日、午前9時30分(米国東部標準時):米国株式取引全体の約10分の1を担うマーケットメーカーであるナイト・キャピタルは、8台あるSMARSサーバーのうち7台に新しい注文ルーティングコードをデプロイした。残りの1台は、新しい機能が再利用するまさにそのフラグの背後で、2003年に廃止された「Power Peg」コードをまだ実行していた。45分間、それは止まらない子注文を送り続けた。400万回の執行、3億9700万株、約70億ドルのポジション、4億6000万ドルの損失。取引開始前に97通の警告メールが届いていた。SEC自身の命令書による事後検証:誰もレビューしなかった手動デプロイ、二重の意味を持つフラグ、2005年に移動されて再テストされなかったストップカウンター、存在しなかったキルスイッチ、そしてライブ市場での「修正」が事態を悪化させた。修正に対する評決:REVERT。
この動画の要点
- 2012年7月27日〜31日:RLPコードが8台のSMARSサーバーのうち7台に手動でコピーされた。セカンドレビュアーなし、書面による手順なし
- 8月1日午前8時1分:取引開始前に97通の「Power Peg disabled」メールが届いた。アラートとして設計されておらず、読まれなかった
- 8月1日午前9時30分〜10時15分:212件の注文が154銘柄で400万回の執行に。35億ドル買い、31億5000万ドル売り。4億6000万ドルの損失。新しいコードのアンインストールが事態を悪化させた
- 8月2日〜12月19日:株価が63%下落して2.58ドルに。1株あたり1.50ドルで4億ドルの救済。GETCOとの合併。2013年10月:1200万ドルのSEC罰金、初のマーケットアクセスルール事例
翻訳されたトランスクリプト
オリジナルの英語ナレーションから翻訳されています。利用可能なオーディオとキャプションはYouTubeによって管理されています。
0:00 ある取引会社が8台のサーバーのうち7台に新しいコードをデプロイし、 残りの1台が70億ドル近くの株を売買したのが 45分間。水曜日としては多すぎる。 2012年8月1日。 米国全体の株式取引の10分の1を占める ナイト・キャピタルが4億4000万ドルの損失を報告した。 SECは後に4億6000万ドル以上と算定し、ナイトに1200万ドルの罰金を科し、 そして事後検証を自ら書いた。10ページ、形容詞なし。
0:25 それがどう起こり、なぜ可能だったのか、そして誰が実際に責任を負うのか。 これはThe Daily Diff、事後検証。 7月27日。ニューヨーク証券取引所は8月1日に小売流動性プログラムを開始するため、 ナイトは新しいコードをSMARS、その注文ルーターに 数台のサーバーに毎日手作業でコピーする。 1人の技術者、8台のサーバー、7つのコピー。 誰もチェックしない。誰もしなければならないという規則はない。 午前8時1分。社内システムがスタッフに「Power Peg disabled」というエラーメールを送り始める。
0:51 取引開始前に97通のメール。 これらはアラートとして設計されていないため、誰も読まない。 これは代償を伴う設計上の決定だ。 9時30分、市場が開く。 7台のサーバーは新しいコードを実行する。 8台目は同じフラグを見て、代わりにPower Pegを実行する。これはナイトが2003年に廃止し、 削除しなかったコードだ。 それは212件の顧客注文に対する子注文を送り、決して止まらない。
1:13 400万回の執行。 3億9700万株。 保有口座が200万ドルの制限を超えて膨れ上がるが、 それは何にも接続されていない。 エンジニアたちは、ライブ市場で、新しいコードを7台の良いサーバーからアンインストールするが、 それがPower Pegをすべての場所でオンにしてしまう。 10時15分頃に停止。買い持ち35億ドル、 売り持ち31億5000万ドル。
1:31 1つ目:Power Pegの停止条件、親注文が完了したことを示すカウンターは、 2005年に移動され、再テストされなかったため、廃止されたコードは 永遠にループする。2つ目:新しい機能はPower Pegの古いフラグを再利用するため、 同じ「はい」が2台のサーバーで2つの意味を持つ。 3つ目:キルスイッチがない。 注文の出入りを比較するものがない。SMARSを停止させるものがない。 リスクモニターは人間が監視する画面で、制限を表示しない。 git blame:新しいフラグではなく再利用されたフラグ、9年間呼び出し可能なデッドコード、
2:00 そして2人目の目がない手動デプロイ。 技術者ではない。 SECの命令書は彼を名指ししていないし、私もそうしない。 爆破半径:4億6000万ドル、およそ毎分1000万ドル。 株価は63%下落して2.58ドルに、1株あたり1.50ドルで4億ドルの救済、 クリスマスまでにGetcoとの合併。 Hacker News、木曜日:人間が介入せずに45分間どうやって動いたのか? そうではなかった。人間が事態を悪化させたのだ。
2:25 評決、事後検証:REVERT。 ナイトは自身の事後検証を決して書かない。規制当局が、 14ヶ月後に書き、その解決策は罰金と合併だった。 月曜日:新しい機能、新しいフラグ。デッドコードは削除され、 無効にされない。注文を送るものはすべてオフスイッチを持つようになる。 まだ話すことが許されていないインシデントを、 コメントで、またはdailydiff.devまで送ってください。 そして、これが今日の差分です。
2:48 Axrisiのニコーです。 責任を持ってマージしてください。
情報源
- SEC Administrative Order, Release No. 34-70694 (Oct 16, 2013), In the Matter of Knight Capital Americas LLCwww.sec.gov
- SEC press release 2013-222, "SEC Charges Knight Capital With Violations of Market Access Rule"www.sec.gov
- Knight Capital Group 8-K, Aug 2, 2012 (the $440M statement)www.sec.gov
- Knight Capital Group 8-K, Aug 6, 2012 (the $400M convertible preferred)www.sec.gov
- Knight / GETCO merger announcement, Dec 19, 2012www.sec.gov
- NYT DealBook, "Knight Capital Says Trading Glitch Cost It $440 Million" (Aug 2, 2012)archive.nytimes.com
- Hacker News, Aug 2, 2012 (73 points)news.ycombinator.com
- Hacker News, "The $440M software error at Knight Capital" (294 points)news.ycombinator.com



