+− THE DAILY DIFFdev & AI news
REVERT

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のニコーです。 責任を持ってマージしてください。

情報源

  1. SEC Administrative Order, Release No. 34-70694 (Oct 16, 2013), In the Matter of Knight Capital Americas LLCwww.sec.gov
  2. SEC press release 2013-222, "SEC Charges Knight Capital With Violations of Market Access Rule"www.sec.gov
  3. Knight Capital Group 8-K, Aug 2, 2012 (the $440M statement)www.sec.gov
  4. Knight Capital Group 8-K, Aug 6, 2012 (the $400M convertible preferred)www.sec.gov
  5. Knight / GETCO merger announcement, Dec 19, 2012www.sec.gov
  6. NYT DealBook, "Knight Capital Says Trading Glitch Cost It $440 Million" (Aug 2, 2012)archive.nytimes.com
  7. Hacker News, Aug 2, 2012 (73 points)news.ycombinator.com
  8. Hacker News, "The $440M software error at Knight Capital" (294 points)news.ycombinator.com

関連動画

postmortem · ja · 2026/09/19

Google Cloudが空白フィールドでクラッシュ。3時間。

空白のフィールドを含むポリシ行がヌルポインタにヒットし、Google Cloudはすべてのリージョンで一度にクラッシュしました。その後、Cloudflareもダウンしました。2025年6月12日、17:49 UTC: すべてのGoogle Cloud APIリクエストを承認するバイナリであるService Controlが、「意図しない空白フィールド」を含むクォータポリシの変更を読み込み、2週間前

2:57 ↗
postmortem · ja · 2026/09/12

正規表現がCloudflareをダウンさせた。27分間。

2019年7月2日13時42分(UTC):CloudflareのWebアプリケーションファイアウォール(WAF)に新しいルールが180以上の都市で約2秒で適用されました。これはシミュレートモードのXSSルールであり、何もブロックしませんが、すべてのリクエストで実行され、末尾は.*(?:.*=.*)となっています。PCREはバックトラックし、HTTPを処理するすべてのCPUコアが100%に達し、Cl

3:00 ↗
postmortem · ja · 2026/09/25

1ミリ秒のバグで英国の航空交通が6時間停止

9月8日火曜日の午前10時、NATSの国家空域システム(NAS)内で通常のスコークコード要求が、値の更新途中に優先度の高いメッセージによって中断された。露出ウィンドウは約1ミリ秒。要求は誤ったまま再開され、フライトデータが破損し、午後7時30分までに2,000便以上の英国発着便が遅延、欠航、または目的地変更となった。

3:06 ↗
postmortem · ja · 2026/09/22

再起動でテルストラは2006年に逆戻り。900万台の電話が影響。

メルボルンのエンジニアが午前2時50分にタイミングシャーシの電源を入れ直したところ、朝食の時間までにはオーストラリア最大のモバイルネットワークが「今は2006年11月である」と認識する事態に。2026年7月8日、テルストラのNTPシャーシ内のGPSカードが電源修理中に再起動し、ファームウェアにはGPS週数ロールオーバーのアップデートが一度も適用されていなかったため、古いエポックを選択し、1,024

3:15 ↗