+− THE DAILY DIFFdev & AI news
REVERT

Wdrożenie na 7 z 8 serwerów kosztowało 460 milionów dolarów. 45 minut.

1 sierpnia 2012, 9:30 ET: Knight Capital, animator rynku odpowiedzialny za około jedną dziesiątą całego handlu akcjami w USA, właśnie wdrożył nowy kod do routingu zleceń na siedmiu ze swoich ośmiu serwerów SMARS.

1 sierpnia 2012, 9:30 ET: Knight Capital, animator rynku odpowiedzialny za około jedną dziesiątą całego handlu akcjami w USA, właśnie wdrożył nowy kod do routingu zleceń na siedmiu ze swoich ośmiu serwerów SMARS. Ósmy nadal używa „Power Peg”, kodu wycofanego w 2003 roku, za tą samą flagą, którą nowa funkcja ponownie wykorzystuje. Przez 45 minut wysyła zlecenia potomne, które nigdy się nie zatrzymują: 4 miliony egzekucji, 397 milionów akcji, pozycje o wartości około 7 miliardów dolarów, straty 460 milionów dolarów. 97 ostrzegawczych e-maili nadeszło przed otwarciem. Analiza pośmiertna z własnego zarządzenia SEC: ręczne wdrożenie, którego nikt nie sprawdził, flaga o dwóch znaczeniach, licznik zatrzymania przesunięty w 2005 roku i nigdy ponownie nie testowany, wyłącznik awaryjny, który nie istniał, i „poprawka” na żywym rynku, która pogorszyła sytuację. Werdykt w sprawie poprawki: REVERT.

Przeczytaj wydanie pisemne (angielski) ↗

Co obejmuje ten film

  • 27–31 lipca 2012: kod RLP skopiowany ręcznie na 7 z 8 serwerów SMARS; brak drugiego recenzenta, brak pisemnej procedury
  • 1 sierpnia, 8:01 rano: 97 e-maili „Power Peg disabled” przed otwarciem; nie zaprojektowane jako alerty, nieczytane
  • 1 sierpnia, 9:30–10:15: 212 zleceń staje się 4 milionami egzekucji w 154 akcjach; 3,5 mld długich, 3,15 mld krótkich; 460 mln dolarów straconych; odinstalowanie nowego kodu pogarsza sytuację
  • 2 sierpnia – 19 grudnia: akcje −63% do 2,58 USD, ratunek 400 mln USD po 1,50 USD za akcję, fuzja z GETCO; październik 2013: 12 mln USD kary od SEC, pierwsza sprawa z Market Access Rule

Przetłumaczona transkrypcja

Przetłumaczono z oryginalnej narracji angielskiej. Dostępne audio i napisy są kontrolowane przez YouTube.

0:00 Firma handlowa wdraża nowy kod na siedmiu z ośmiu serwerów, a ósmy kupuje i sprzedaje akcje o wartości prawie siedmiu miliardów dolarów w ciągu czterdziestu pięciu minut, co jest dużo, nawet jak na środę. 1 sierpnia 2012 roku. Knight Capital, jedna dziesiąta całego handlu akcjami w USA, zgłasza stratę 440 milionów dolarów. SEC później nalicza ponad 460, nakłada na Knight karę dwunastu milionów, i sama pisze analizę pośmiertną: dziesięć stron, zero przymiotników.

0:25 Jak to się dzieje, dlaczego jest to możliwe i kogo właściwie obwiniać. To jest The Daily Diff, analiza pośmiertna. 27 lipca. Nowojorska Giełda Papierów Wartościowych uruchamia program płynności dla detalistów 1 sierpnia, więc Knight kopiuje nowy kod na SMARS, swój router zleceń, kilka serwerów dziennie, ręcznie. Jeden technik, osiem serwerów, siedem kopii. Nikt nie sprawdza; żadna zasada nie mówi, że ktoś musi. 8:01 rano. Wewnętrzny system zaczyna wysyłać pracownikom e-maile z błędem o treści: Power

0:51 Peg disabled. Dziewięćdziesiąt siedem e-maili przed otwarciem. Nie są zaprojektowane jako alerty, więc nikt ich nie czyta, co jest decyzją projektową z wysoką ceną. 9:30, rynek otwiera się. Siedem serwerów uruchamia nowy kod. Ósmy widzi tę samą flagę i zamiast tego uruchamia Power Peg: kod, który Knight wycofał w 2003 roku i nigdy nie usunął. Wysyła zlecenia potomne dla 212 zleceń klientów i nigdy się nie zatrzymuje.

1:13 Cztery miliony egzekucji. 397 milionów akcji. Konto holdingowe rośnie ponad dwumilionowy limit, który nie jest podłączony do niczego. Inżynierowie, na żywym rynku, odinstalowują nowy kod z siedmiu dobrych serwerów, co włącza Power Peg wszędzie. Około 10:15 zatrzymuje się: trzy i pół miliarda długich, trzy przecinek piętnaście miliarda krótkich.

1:31 Pierwsze: warunek zatrzymania Power Peg, licznik mówiący, że zlecenie nadrzędne jest zrealizowane, jest przeniesiony w 2005 roku i nigdy nie testowany ponownie, więc wycofany kod działa w pętli bez końca. Drugie: nowa funkcja ponownie wykorzystuje starą flagę Power Peg, więc to samo tak oznacza dwie rzeczy na dwóch serwerach. Trzecie: brak wyłącznika awaryjnego. Nic nie porównuje zleceń wychodzących ze zleceniami przychodzącymi; nic nie zatrzymuje SMARS. Monitor ryzyka to ekran obserwowany przez ludzi; nie pokazuje limitów. git blame: flaga ponownie wykorzystana zamiast nowej, martwy kod możliwy do wywołania przez dziewięć

2:00 lat, i ręczne wdrożenie bez drugiej pary oczu. Nie technik. Zarządzenie SEC nigdy go nie wymienia, i ja też nie będę. Promień rażenia: 460 milionów dolarów, około dziesięciu milionów na minutę. Akcje w dół o 63 procent do dwóch dolarów pięćdziesięciu ośmiu, ratunek 400 milionów dolarów po dolarze pięćdziesiąt za akcję, fuzja z Getco przed świętami. Hacker News, czwartek: jak to działało 45 minut bez interwencji człowieka? Nie działało. Ludzie to pogorszyli.

2:25 Werdykt, analiza pośmiertna: REVERT. Knight nigdy nie pisze własnej analizy pośmiertnej; regulator to robi, czternaście miesięcy później, a poprawka to kara i fuzja. Poniedziałek: nowa funkcja, nowa flaga; martwy kod zostaje usunięty, nie wyłączony; wszystko, co wysyła zlecenia, otrzymuje wyłącznik. Wyślij mi incydent, o którym nadal nie wolno ci mówić, w komentarzach lub na the daily diff dot dev. I to jest diff na dziś.

2:48 Jestem Niko z Axrisi. Scalaj odpowiedzialnie.

Źródła

  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

Powiązane filmy