+− THE DAILY DIFFdev & AI news
REVERT

서버 8대 중 7대에 배포하는 과정에서 4억 6천만 달러 손실 발생. 45분 소요.

2012년 8월 1일 오전 9시 30분(미국 동부 표준시): 미국 주식 거래량의 약 10분의 1을 차지하는 시장 조성자 Knight Capital이 8대의 SMARS 서버 중 7대에 새로운 주문 라우팅 코드를 배포했습니다.

2012년 8월 1일 오전 9시 30분(미국 동부 표준시): 미국 주식 거래량의 약 10분의 1을 차지하는 시장 조성자 Knight Capital이 8대의 SMARS 서버 중 7대에 새로운 주문 라우팅 코드를 배포했습니다. 나머지 1대의 서버는 2003년에 사용 중단된 "Power Peg" 코드를 계속 실행하고 있었으며, 이는 새로운 기능이 재사용하는 플래그 뒤에 숨겨져 있었습니다. 45분 동안 이 서버는 멈추지 않는 하위 주문을 계속 전송했습니다. 4백만 건의 실행, 3억 9천 7백만 주, 약 70억 달러 규모의 포지션, 그리고 4억 6천만 달러의 손실이 발생했습니다. 개장 전에 97통의 경고 이메일이 도착했습니다. SEC의 자체 명령에 따른 사후 분석 결과: 아무도 검토하지 않은 수동 배포, 두 가지 의미를 가진 플래그, 2005년에 이동했지만 다시 테스트되지 않은 중지 카운터, 존재하지 않았던 킬 스위치, 그리고 라이브 시장에서 상황을 악화시킨 "수정". 수정에 대한 평결: REVERT.

서면판 읽기 (영어) ↗

이 동영상에서 다루는 내용

  • 2012년 7월 27일~31일: RLP 코드가 SMARS 서버 8대 중 7대에 수동으로 복사됨; 두 번째 검토자 없음, 서면 절차 없음
  • 8월 1일 오전 8시 1분: 개장 전 97통의 "Power Peg 비활성화됨" 이메일; 경고로 설계되지 않았고 읽히지도 않음
  • 8월 1일 오전 9시 30분~10시 15분: 212건의 주문이 154개 주식에서 4백만 건의 실행으로 이어짐; 35억 달러 롱, 31억 5천만 달러 숏; 4억 6천만 달러 손실; 새 코드 제거가 상황을 악화시킴
  • 8월 2일 – 12월 19일: 주가 -63% 하락하여 2.58달러, 주당 1.50달러에 4억 달러 구제, GETCO와 합병; 2013년 10월: 1,200만 달러 SEC 벌금, 첫 시장 접근 규칙 사례

번역된 스크립트

원래 영어 내레이션에서 번역되었습니다. 사용 가능한 오디오 및 캡션은 YouTube에서 제어합니다.

0:00 한 트레이딩 회사가 8대 서버 중 7대에 새로운 코드를 배포했는데, 나머지 한 대가 거의 70억 달러 상당의 주식을 사고팔았습니다. 45분 만에 말이죠. 수요일임에도 불구하고 엄청난 양입니다. 2012년 8월 1일. 미국 전체 주식 거래량의 10분의 1을 차지하는 Knight Capital이 4억 4천만 달러의 손실을 보고합니다. SEC는 나중에 4억 6천만 달러 이상의 손실로 집계하고 Knight에 1,200만 달러의 벌금을 부과합니다. 그리고 직접 사후 분석 보고서를 작성합니다. 10페이지 분량에 형용사는 단 하나도 없습니다.

0:25 어떻게 이런 일이 일어났는지, 왜 가능했는지, 그리고 누가 실제로 비난을 받는지. The Daily Diff, 사후 분석입니다. 7월 27일. 뉴욕 증권 거래소가 8월 1일에 소매 유동성 프로그램을 시작합니다. 그래서 Knight는 새로운 코드를 주문 라우터인 SMARS에 매일 몇 대의 서버에 수동으로 복사합니다. 한 명의 기술자, 여덟 대의 서버, 일곱 번의 복사. 아무도 확인하지 않습니다. 그렇게 해야 한다는 규정도 없었고요. 오전 8시 1분. 내부 시스템에서 직원들에게 오류 이메일을 보내기 시작합니다. 내용은 Power

0:51 Peg 비활성화됨. 개장 전에 97통의 이메일이 발송됩니다. 경고로 설계되지 않았기 때문에 아무도 읽지 않습니다. 이것은 대가를 치러야 하는 설계 결정입니다. 9시 30분, 시장이 개장합니다. 7대의 서버는 새로운 코드를 실행합니다. 나머지 1대는 같은 플래그를 보고 대신 Power Peg를 실행합니다. Knight가 2003년에 사용 중단했지만 삭제하지 않은 코드였습니다. 이 코드는 212개의 고객 주문에 대한 하위 주문을 보내고, 멈추지 않습니다.

1:13 4백만 건의 실행. 3억 9천 7백만 주. 보유 계좌가 2백만 달러 한도를 초과하여 부풀어 오릅니다. 이 계좌는 아무것도 연결되어 있지 않았습니다. 엔지니어들은 라이브 시장에서 7대의 정상적인 서버에서 새로운 코드를 제거합니다. 그 결과 Power Peg가 모든 곳에서 켜지게 됩니다. 오전 10시 15분경 멈춥니다. 35억 달러 롱, 31억 5천만 달러 숏.

1:31 첫째: Power Peg의 중지 조건, 즉 상위 주문이 채워졌음을 알리는 카운터는 2005년에 이동되었고 다시 테스트되지 않았기 때문에 사용 중단된 코드는 영원히 반복됩니다. 둘째: 새로운 기능은 Power Peg의 이전 플래그를 재사용합니다. 그래서 같은 '예'가 두 서버에서 두 가지를 의미합니다. 셋째: 킬 스위치가 없습니다. 주문을 비교하는 것도, SMARS를 중지시키는 것도 없습니다. 위험 모니터는 사람이 보는 화면이며, 한도를 보여주지 않습니다. git blame: 새로운 플래그 대신 재사용된 플래그, 9년 동안 호출 가능한 죽은 코드,

2:00 그리고 두 번째 검토자 없는 수동 배포. 기술자의 잘못은 아닙니다. SEC 명령은 그를 언급하지 않으며, 저도 언급하지 않을 것입니다. 영향 범위: 4억 6천만 달러, 분당 약 천만 달러. 주가 63% 하락하여 2달러 58센트, 주당 1달러 50센트에 4억 달러 구제, 크리스마스까지 Getco와 합병. Hacker News, 목요일: 어떻게 인간이 개입하지 않고 45분 동안 실행될 수 있었을까? 그러지 않았습니다. 인간이 상황을 더 악화시켰습니다.

2:25 평결, 사후 분석: REVERT. Knight는 자체 사후 분석 보고서를 작성하지 않았습니다. 규제 기관이 14개월 후에 작성했으며, 해결책은 벌금과 합병이었습니다. 월요일: 새로운 기능, 새로운 플래그; 죽은 코드는 삭제됩니다. 비활성화되지 않습니다. 주문을 보내는 모든 것은 킬 스위치를 가집니다. 아직 이야기할 수 없는 사건이 있다면 저에게 보내주세요. 댓글이나 the daily diff dot dev로 보내주세요. 오늘의 차이였습니다.

2:48 저는 Axrisi의 Niko입니다. 책임감 있게 병합하세요.

출처

  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 · ko · 2026. 9. 25.

1밀리초 버그로 영국 항공 교통 6시간 마비.

9월 8일 화요일 오전 10시, NATS의 국가 영공 시스템(NAS) 내에서 일상적인 스쾍 코드 요청이 값을 업데이트하는 도중에 우선순위가 더 높은 메시지에 의해 중단되었습니다. 노출 시간은 약 1밀리초입니다. 요청이 잘못 재개되고 비행 데이터가 손상되어 오후 7시 30분까지 2,000편 이상의 영국 항공편이 지연, 취소 또는 회항되었습니다.

3:06 ↗
postmortem · ko · 2026. 9. 22.

재부팅으로 텔스트라가 2006년으로 돌아갔습니다. 9백만 대의 전화.

멜버른의 한 엔지니어가 새벽 2시 50분에 타이밍 섀시 전원을 다시 켰고, 아침 식사 시간까지 호주 최대의 모바일 네트워크는 2006년 11월이라고 동의했습니다. 2026년 7월 8일: 텔스트라의 NTP 섀시에 있는 GPS 카드가 전원 공급 장치 수리 중에 재부팅되었고, 펌웨어는 GPS 주 롤오버 업데이트가 없었기 때문에 이전 에포크를 선택하여 1,024주

3:15 ↗