OpenAI將崩潰調試視為流行病學研究,修復了存在18之久年的GNU libunwind漏洞

重點摘要
OpenAI工程師將崩潰調試比作流行病學研究,透過自動分析過去一年所有核心轉儲來找出規律,而非逐一排查。他們發現Rockset中兩個互不相關的錯誤同時出現,最終修復了存在18年之久的GNU libunwind漏洞。
OpenAI 的工程團隊近期在修復一個存在長達十八年的 GNU libunwind 漏洞時,採用了一種前所未見的除錯策略:將崩潰調試比擬為流行病學研究,透過大規模自動化分析生產環境中的歷史崩潰記錄,成功找出兩個看似相關卻彼此獨立的錯誤根源。這項發現不僅解決了困擾團隊數週的伺服器異常,也意外揭露了開源底層函式庫中一個潛伏多年的安全隱患。這場除錯行動的起點,來自 OpenAI 旗下資料基礎設施服務 Rockset 所發生的間歇性崩潰。Rockset 是一款以 C++ 撰寫的即時分析資料庫,負責為 ChatGPT 的搜尋功能與資料外掛提供底層支援。
工程師們在例行監控中發現,某些函數在執行過程中會回傳錯誤的記憶體位址,而棧指標(stack pointer)也經常在執行途中偏移了整整八個位元組。這種不一致的現象讓團隊百思不得其解,因為他們提出的每一種可能原因,都很快被後續的實驗證據推翻。起初,團隊傾向於將問題歸結為單一程式錯誤,但隨著調查深入,他們開始懷疑事情並不單純。每一個假設都像是陷入死胡同:修復了一個可疑的程式碼段落,崩潰依然發生;調整了編譯參數,錯誤模式卻沒有改變。團隊花了數週時間埋頭於單一事件的深度追蹤,卻始終無法找到一致的解釋。轉機出現在他們決定改變方法論的那一刻——從「偵探式」的個案分析,轉向「流行病學」的群體統計。
這項被團隊稱為「流行病學調試」(epidemiological debugging)的技術,核心概念是:不要把每一次崩潰當作孤立事件,而是像公共衛生專家研究疾病爆發一樣,收集大量樣本,尋找統計上的規律與異常。OpenAI 的工程師們首先利用 ChatGPT 自動生成了一個腳本,這個腳本會逐一掃描過去一年內 Rockset 在生產環境中產生的所有核心轉儲檔案,提取每個檔案的開頭部分與暫存器資料,並過濾掉已知的誤報。接著,腳本將每一次崩潰自動分類為「回傳空指標」、「棧對齊錯誤」或其他類型,並將整個分析流程平行化,一次處理數百甚至上千個核心檔案。當這套自動化管線運作完畢後,團隊終於看到了全貌。
他們發現,過去一年中 Rockset 的崩潰其實來自兩種截然不同的原因,只是它們在時間點上恰好重疊,導致工程師誤以為是同一組錯誤。第一個錯誤是 Rockset 本身程式碼中的一個邏輯缺陷,會在某些邊界條件下回傳不正確的記憶體位址;第二個錯誤則深埋在系統底層——GNU libunwind 函式庫中一個長達十八年未曾被發現的漏洞,這個漏洞會在某些特定的執行緒交錯情境下,導致棧指標偏移八個位元組。GNU libunwind 是一個廣泛用於 Linux 系統的程式庫,主要負責處理程式執行時的堆疊回溯(stack unwinding),對例外處理、除錯器與效能剖析工具至關重要。
這個漏洞最早可追溯至 2008 年左右的程式碼提交,卻因為觸發條件極為罕見,一直未被主流開發者注意。直到 OpenAI 團隊透過大規模崩潰統計,才將這個隱藏了十八年的異常模式從雜訊中分離出來。修復過程同樣充滿挑戰。團隊首先確認 Rockset 自身的程式碼錯誤,並迅速部署了修補程式。但對於 GNU libunwind 的漏洞,他們需要與開源社群合作,提交詳細的錯誤報告與重現步驟。由於該漏洞只會在特定硬體架構、編譯選項與執行緒調度組合下才會觸發,OpenAI 的工程師們特別設計了一套壓力測試腳本,能夠在測試環境中穩定重現棧指標偏移的現象,從而協助 libunwind 維護者定位並修正問題。
這項發現的意義不僅在於修復了一個陳年漏洞,更在於驗證了「流行病學調試」這種方法論的實用價值。傳統的除錯流程往往依賴於開發者對單一崩潰事件的直覺與經驗,但在大規模分散式系統中,錯誤訊號可能被多種因素疊加而變得難以辨識。透過自動化收集與統計分析,團隊能夠跳脫個案的迷宮,直接從整體模式中找出異常的集群,類似於傳染病學中追蹤病例群聚來發現感染源的做法。OpenAI 的工程團隊在內部技術分享中表示,這次經驗讓他們重新思考了如何設計除錯工具鏈。未來,他們計劃將這套崩潰分析管線常態化,並考慮開放部分分析腳本供社群使用。
同時,GNU libunwind 的修補程式已經被併入上游程式碼庫,所有使用該函式庫的 Linux 發行版都應盡快更新,以消除這個潛在的穩定性與安全風險。值得注意的是,這個漏洞雖然在技術上屬於罕見的邊界條件,但由於 libunwind 被廣泛整合在資料庫、編譯器、容器執行環境等關鍵元件中,其影響範圍可能超出預期。OpenAI 的工程師們提醒,任何長期運行的 C++ 服務如果出現難以解釋的棧指標異常,都應該考慮檢查 libunwind 的版本是否受影響。
從一個看似無解的崩潰問題,到最終發現兩個隱藏錯誤,OpenAI 的這趟除錯旅程不僅展現了大型語言模型輔助程式開發的潛力,也為業界提供了一種全新的除錯思路。當傳統的「逐行追蹤」碰到瓶頸時,或許換個角度,用「流行病學」的眼光看待系統中的每一次異常,反而能看見更清晰的真相。
Related
相關文章

秋招信息戰打不動?我們測了千問的新功能,讓Agent全程陪跑
阿里巴巴旗下大模型「千問」近日推出全新功能,針對秋季招聘季中求職者面臨的海量資訊與繁複流程,打造「Agent 全程陪跑」服務。根據官方測試,這項功能能協助使用者自動篩選職缺、整理企業資訊,甚至模擬面試問答,大幅減輕求職者自行蒐集與比對資訊的負擔。 在實際體驗中,用戶只需輸入自身學經歷與目標產業,Agent 便會自動爬取最新的秋招公告,並按職位匹配度、截止日期等條件排序,同時附上企業背景與筆面試經驗摘要。

Caviar 推出 24K 鍍金版 Meta 雷朋智能眼鏡 Odyssey,售價 6130 美元限量 24 副
Caviar 推出限量 24 副的 Odyssey 智能眼鏡,以 Meta Ray-Ban 為基礎,提供 24K 金與 925 銀裝飾版本,售價分別為 6130 美元與 6840 美元。該產品保留原版功能,並附帶鱷魚皮充電盒,展現奢華工藝。

Suno 平臺將為 AI 生成音樂添加隱水印,防止濫用現象發生
Suno 平台將為其AI生成的音樂加入隱藏式音頻水印與指紋識別技術,以便在其他平台上被上傳時可辨識來源。此舉是因應索尼、環球等音樂巨頭組成的聯盟,要求防止AI音樂濫用並禁止其進入全球排行榜。

AI寫的PR堆成山,Rust已忍無可忍
Rust 語言社群近期強烈反彈大量由 AI 生成的公關稿與行銷文淹沒官方討論區,這些內容缺乏深度且帶有商業目的,讓資深貢獻者不堪其擾。社群管理團隊正研擬加強審查機制與提高發文門檻,但同時也擔心誤傷真正的新手使用者。這場爭議凸顯開源專案在 AI 時代面臨資訊過濾成本攀升的困境。

內置 10TOPS INT8 算力:韓 Mobilint 推出 USB AI 加速器 MLD-R1
韓國NPU企業Mobilint推出USB外接AI加速器MLD-R1,內建REGULUS AI SoC,提供10TOPS INT8算力與4核Arm處理器。該裝置支援多種AI框架與作業系統,功耗僅3W,具備IP65防塵防水,適合邊緣運算場景。

AI 藝人“方桃子”帶貨美瞳廣告遭下架,聲稱“戴了一天都很舒服”
AI 虛擬藝人「方桃子」因推廣美瞳廣告,聲稱「戴了一天都很舒服」引發爭議,網友質疑其無真實眼睛無法體驗產品效果。該廣告目前已從抖音下架,可能涉及違反《中華人民共和國廣告法》中關於虛假或誤導性內容的規定。