+− THE DAILY DIFFdev & AI news
NEEDS REVIEW

一個一毫秒的錯誤令英國空域停擺六小時。

9 月 8 日星期二上午 10:00,英國國家航空交通服務公司(NATS)國家空域系統(NAS)內一個例行應答器代碼請求在更新數值時,被一個更高優先級的訊息打斷。

9 月 8 日星期二上午 10:00,英國國家航空交通服務公司(NATS)國家空域系統(NAS)內一個例行應答器代碼請求在更新數值時,被一個更高優先級的訊息打斷。暴露視窗約為一毫秒。該請求隨後以錯誤的方式恢復,導致飛行數據損壞,到晚上 7:30,超過 2,000 班英國航班被延誤、取消或轉飛。

閱讀書面版本(英文) ↗

本影片涵蓋的內容

  • 10:00:一個請求在 1 毫秒的視窗內被中斷
  • 時間線:10:00 應答器 → 10:02 故障 → 12:45 航班停止起飛 → 13:32 連結中斷
  • 解決方案:重啟全國的航班數據
  • 機制:寫入過程中途暫停
  • 為何一個安全功能令天空停擺

翻譯的文字記錄

從英文原文旁白翻譯。可用的音頻和字幕由 YouTube 控制。

10:00:一個請求在 1 毫秒的視窗內被中斷

0:00 早上十點,英國飛行數據系統內的一個例行請求 在錯誤的毫秒被中斷,到傍晚時分,超過二 千班航班延誤、取消或轉飛。 這是英國航空交通服務公司 Nats 的初步報告。 沒有攻擊跡象,也沒有人按錯按鈕。 只是一個遺留的缺陷,以及一個非常特定的毫秒。 它是如何發生的,為什麼一毫秒就足夠了,以及誰應該為此負責。 這裡是 The Daily Diff,事後檢討。

0:31 十點。有人手動請求一個應答器代碼,一個四位數的號碼,它將雷達顯示點與航班計劃綁定。

時間線:10:00 應答器 → 10:02 故障 → 12:45 航班停止起飛 → 13:32 連結中斷

0:36 請求有效,計劃也有效。 請求有效,計劃也有效。 十點零二分。 倫敦區域控制中心與核心系統之間的連結中斷, 然後在四十五秒後自行恢復。 工單上寫著已恢復、穩定、無營運影響。 十二點三十二分。連結再次開始中斷, 每次都更快,管制員失去了一些自動化功能。

0:56 到十二點四十五分,英國航班停止起飛。 一點三十二分,連結中斷並一直保持中斷。 解決方案是受控重啟,這是昂貴的部分,

解決方案:重啟全國的航班數據

1:06 因為同一個系統為全國各地的控制中心和機場提供數據。 這個錯誤存在於倫敦的空域。 限制覆蓋整個英國。 重啟從三點一刻運行到四點十分, 而理清重複的航班計劃則花費到六點五十分。 那麼為什麼一毫秒就足夠了呢?

機制:寫入過程中途暫停

1:23 系統按優先級處理任務,為了緊急任務暫停小型任務是正常的。 但這個任務正在更新一個數值。 緊急訊息在一毫秒內到達,更新中途停止。 當它恢復時,它沒有正確恢復。 然後錯誤數據洩漏到一些後來的航班更新中。

為何一個安全功能令天空停擺

1:40 倫敦嘗試讀取一個,花費太長時間並超時。 超時會中斷連結,這是設計好的,以保護兩個系統。 安全功能完美運作。 這就是問題所在。 報告原文如此。 如果緊急訊息早到或晚到一毫秒, 更新就會正常完成。 在 Hacker News 上,一位程式設計師稱一毫秒是「絕對的永恆」,

2:02 保證會在「本週二」發生。 那天就是星期二。

git blame — 舊程式碼 50 · 重啟計劃 30 · 10:02 警報 15 · 1 毫秒 5

2:05 git blame。舊程式碼,百分之五十,因為一個更新可以中途暫停 並且錯誤地恢復。 重啟計劃,百分之三十,因為倫敦的一條錯誤記錄意味著必須重啟 全國的航班數據。 十點零二分的警報,百分之十五,因為它自行修復並被歸檔為無 影響。百分之五歸因於毫秒,因為它的時間點。 影響範圍。Nats 當天計劃處理大約八千班航班,實際處理了

影響範圍:原定 8,000 班,處理 6,094 班,三年內第三次故障

2:27 大約六千班。 英國航班停止起飛大約四個半小時, 積壓的航班花了兩天多才清理完畢。 這是英國三年內的第三次航空交通故障, 行政總裁稱這個錯誤「非常、非常隱蔽」。

結論 + 星期一重點:原子寫入,響亮警報

2:41 結論,事後檢討:NEEDS REVIEW。 報告快速而具體,修復程式已編寫並正在測試中。 但計劃是更快重啟,而不是縮小重啟範圍。 星期一重點:如果一個任務可以暫停,使其寫入原子化, 並將一個自行恢復的警報視為警報。 在評論中,或在 thedailydiff.dev 發送你仍然不被允許談論的事件給我。 在評論中,或在 thedailydiff.dev 發送你仍然不被允許談論的事件給我。 今天的差別就到這裡。

3:02 我是 Axrisi 的 Niko。 謹慎合併。

來源

  1. NATS, Major Incident Preliminary Investigation Report, NAS incident 08 September 2026 (report date Sep 16)www.nats.aero
  2. NATS press release, "NATS publishes preliminary report on technical incident of 8 September" (Sep 18, 2026)www.nats.aero
  3. NATS on X, 8 Sepx.com
  4. BBC, "Flight chaos caused by 'millisecond' software defect, report says"www.bbc.co.uk
  5. The Guardian (Sep 18, 2026)www.theguardian.com
  6. Hacker News thread on the reportnews.ycombinator.com

相關影片

postmortem · zh-HK · 2026年9月22日

重啟令 Telstra 倒退回 2006 年。九百萬部電話。

墨爾本的一名工程師在凌晨 2 時 50 分重啟計時機箱,到早餐時,澳洲最大的流動網絡竟以為是 2006 年 11 月。2026 年 7 月 8 日:Telstra NTP 機箱中的 GPS 卡在更換電源期間重啟,其韌體從未有 GPS 週數滾動更新,因此它選擇了舊的紀元,倒退了 1,024 週。由於 2025 年 10 月的變通方法使該卡成為網絡唯一的 stratum-1 來源 — 以及 2020

3:15 ↗
postmortem · zh-HK · 2026年9月19日

Google Cloud 在空白欄位當機。三小時。

一個帶有幾個空白欄位的策略行觸發了空指標,Google Cloud 立即在所有區域當機 — 然後 Cloudflare 也隨之故障。2025 年 6 月 12 日,世界標準時間 17:49:Service Control,一個批准所有 Google Cloud API 請求的二進位檔案,讀取了一個帶有「非預期空白欄位」的配額策略變更,觸發了兩週前發布但沒有空值檢查和功能旗標的程式碼路徑,並在所有區

2:57 ↗
postmortem · zh-HK · 2026年9月16日

Facebook從互聯網上刪除了自己。長達六小時。

Facebook將自己的地址從互聯網上移除,當其工程師趕來恢復時,門禁讀取器也失靈了,因為它們也依賴Facebook運作。2021年10月4日,UTC時間15:40:一個例行的骨幹網絡維護指令導致Facebook所有數據中心之間的連接中斷;旨在阻止此類操作的審核工具存在錯誤;Facebook的名稱伺服器由於無法連接數據中心,依設計撤回了自己的BGP路由——於是facebook.com、Instag

3:01 ↗
postmortem · zh-HK · 2026年9月12日

一個正規表達式擊潰了Cloudflare。持續27分鐘。

2019年7月2日,世界標準時間13:42:一條針對Cloudflare網絡應用程式防火牆的新規則在約兩秒鐘內於180多個城市上線。這是一條模擬模式下的XSS規則,因此它不會阻擋任何東西,但它仍然會在每個請求上運行,並且以.*(?:.*=.*)結尾。PCRE回溯,每個服務HTTP的CPU核心達到100%,每個透過Cloudflare代理的網站都會在27分鐘內返回502;流量下降82%。終止開關位於

3:00 ↗