#AI
OpenAI 修复 18 年 libunwind 竞态漏洞
OpenAI 工程师通过大规模群体分析,修复了一个潜伏 18 年的 **GNU libunwind 竞态条件**,同时揪出一个独立的 Azure 宿主机硬件错误。两者最初伪装成同一种神秘崩溃——ChatGPT 数据基础设施 **Rockset** 中的 C++ 函数返回时跳到无效地址。工程师耗时数月,在单案深挖陷入死胡同时切换思路,用 **ChatGPT 编写脚本**,对过去一年内全部生产环境 core dump 进行自动化分类——回归空指针的崩溃与栈指针对齐异常的崩溃立刻分离成两个独立群体。第一个 bug 来自 **一台 Azure 物理机 CPU 计算错误**;第二个则是 **libunwind 异常处理路径中一种单指令竞态窗口**,自 2008 年起便隐藏在无数 C++ 程序的栈展开逻辑里。修复已上游合并。此次排查的核心经验在于:当单案证据互相矛盾时,放弃“医生式诊断”,转向“流行病学式全量数据清洗”才是破局关键。
💡 为什么值得看展示了从个案诊断转向“全量核心转储分析”的工程方法论,以及 AI 辅助撰写分析脚本的实际用例
查证
来源档案
OpenAI Engineering Blog
官方一手技术 postmortem,由参与排查的工程师 Nathan Bronson 署名
官方一手源,事实陈述可信;技术论述是否被外部专家认同需后续验证
延伸阅读
从 libunwind commit 视角看怎么修这个 18 年老 bug,预估约 10 分钟