小鱼儿与花无缺
OpenAI 将崩溃调试视为流行病学研究,修复了存在 18 年之久的 GNU libunwind 漏洞_我的网站

一 | 勇士球迷狂喜啊!仅一夜之间,勇士疯狂补强,连签两人,凑齐15人大名单,更炸裂的是,核心巴特勒回归时间出炉了,让我们来一起看看勇士这几条最新消息: 首先北京时间8月25日晚9点半,据NBA名记Shams报道,自由球员后卫布兰登威廉姆斯以1年260万美元的底薪合同加盟金州勇士。这是勇士今年休赛期第一次用标准合同通过自由球员市场引入新援! 26岁的威廉姆斯上赛季效力独行侠,出战66场常规赛,场均22.2分钟贡献13.0分、2.9篮板和3.9助攻,投篮命中率47.2%,三分命中率23.2%。 作者 | Steef-Jan Wiggers 译者 | 平川 OpenAI 的工程师们花了数周时间,试图解释 Rockset 中那些神秘的崩溃问题。他的速度和冲击力有望为勇士第二阵容注入活力,填补替补后卫线的得分空白。这笔签约也让勇士的正式合同球员达到14人,还剩1个标准合同名额。

二 | 而仅仅过了不到10个小时,勇士的引援步伐继续加快,北京时间8月26日凌晨,Shams再度报道,自由球员前锋乔治尼昂与勇士达成一份1年390万美元的合同。Rockset 是一款 C++ 数据基础设施服务,为 ChatGPT 的搜索和数据插件提供支持。33岁的尼昂职业生涯三分命中率高达40%,是一名典型的空间型四号位。函数似乎会返回错误的内存地址,栈指针在执行过程中似乎会偏移 8 个字节。团队提出的每一种假设都面临着有力的反证。这个 Bug 似乎根本不可能存在。因伤缺席了整个2025-26赛季后,他将迎来个人第11个NBA赛季。 随着尼昂的加盟,勇士常规赛15人大名单正式满员。 他们原本以为是一个 Bug ,结果却发现是两个互不相关的 Bug ,它们只是很巧合地在同一时间被发现了。这一突破性发现并非来自对单个崩溃事件的深入排查,而是源于转向了他们所说的“流行病学调试”:构建一条管道,自动分析过去一年中生产环境的每一个核心转储文件,然后寻找整体规律,而不是对单个案例进行推断。

三 | 该团队让 ChatGPT 编写了一个脚本,用于下载每个核心文件的开头部分,提取寄存器数据,过滤已知的误报,并将每次崩溃标记为“返回空指针”、“栈对齐错误”或其他类型。他们将该脚本并行应用于过去一年中的所有 Rockset 核心转储文件。

四 | 过去一个月里,这两人一直是勇士的重点引援目标,如今均以一年期合同完成补强。他们很快就发现了相关性。 与此同时,一个更让勇士球迷振奋的消息来自吉米巴特勒的伤病恢复。据ClutchPoints记者Brett Siegel报道,巴特勒在2027年NBA交易截止日前复出的可能性“非常大”。

五 | 原本从症状上看属于同类的问题,实际上对应两组特征完全不同的崩溃事件。 巴特勒是在2026年1月19日对阵老东家热火的比赛中右膝前十字韧带撕裂的,随后赛季报销,整个2025-26赛季仅出战38场,场均20.0分、5.6篮板和4.9助攻。Siegel透露,巴特勒的恢复过程没有出现任何倒退或限制,甚至有迹象表明他的恢复进度领先于预期,所以他很有可能会在2027年2月交易截止日前回归赛场,这对勇士以及球迷来说无疑是天大的好消息了! 另外巴特勒的复出时间将直接决定勇士后续的引援策略,如果他能在截止日前健康归来,勇士将得以评估现有阵容的竞争力,从而考虑补强,意思就是只要巴特勒能够顺利回归,在交易截止日前,勇士就会再度补强。 这些因栈对齐错误导致的崩溃均源自同一个 Azure 区域,有明确的起始日期,而且从未出现在长期运行的节点上。如果是这样的话,那下赛季球队仍然有很大希望冲击季后赛,所以现阶段这一切都只能静待老巴的复出了!。团队追踪发现,这些崩溃源自一台物理主机,其 CPU 正在悄无声息地产生错误的结果。

六 | 它既没有过热,也没有抛出机器检查异常,而只是数学运算默默出了错。将该主机从服务中移除后,因栈对齐错误导致的崩溃便完全消失了。 在剔除硬件崩溃问题后,剩余的由“返回空指针”导致的崩溃问题便变得可控了。此前,团队曾排除了 C++ 异常展开的原因,因为他们认为自己找到了反例:在未使用异常的代码路径中发生了崩溃。但这些反例全都来自有硬件损坏的故障集群。一旦剔除了这些干扰因素,剩余的所有崩溃便都是发生在异常展开过程中了。 问题发生的根本原因是 GNU libunwind 的 _Ux86_64_setcontext 函数中有一个已经存在 18 年的竞争条件。在 C++ 异常展开过程中,libunwind 会在栈上合成一个 ucontext_t 结构体,填充所需的寄存器状态,然后调用 _Ux86_64_setcontext 将控制权转移给清理处理程序。问题在于:_Ux86_64_setcontext 在从旧结构体中读取指令指针的操作尚未完成之前,就将栈指针(%rsp)更新为指向新的栈帧。一旦 %rsp 发生变化,该结构体便不再属于活动栈的一部分,也不再受内核红区的保护。如果信号恰好在 %rsp 更新与 %rip 读取之间的这一时间窗口内到达,内核就会在该结构体之上构建其信号帧,指令指针遭到破坏,函数便会跳转到 NULL 或垃圾地址。 竞争窗口的宽度正好为一条指令。以现代处理器的时钟频率计算,这大约相当于 100 皮秒。在大多数程序中,这种情况根本不会被触发。OpenAI 的 Rockset 使用了 timer_create 函数,每隔几毫秒的 CPU 时间就发送一次 SIGUSR2 信号,为的是实现轻量级的按查询记账,这样产生的信号发送事件远多于传统的应用程序。正是这种高频的信号发送,将只在理论上可能发生的竞争状况转化成了实际生产环境中的崩溃。 该团队将一个修复方案和一个自包含的重现示例提交到了 GNU libunwind,并通过验证证实,其他展开器(如 libgcc)不存在这个问题。

七 | 该修复方案通过重新排序指令,确保在更新 %rsp 之前先读取 %rip,从而彻底消除了这个时间窗口。 该团队对这一教训的总结值得全文引用: 最重要的步骤并非巧妙地解读汇编代码,也不是对细节的深入了解,而是构建一个高质量的数据集。如果没有这个数据集,我们就会把两种截然不同的现象混为一谈,并试图通过推理来理清这种混乱。一旦获得了准确且完整的全量数据,问题的结构便显而易见了。 如果你的团队正在排查难以解释的生产环境崩溃问题,请检查你们是否将多个 Bug 混为一谈。那些看似与所有假设都不相符的症状,实际上可能并不矛盾;它们可能与两个不同的假设相符,而你却无意中将它们混淆了。洞察问题结构的最快途径,并非对单个案例进行更深入的分析,而是获取涵盖所有故障案例的完整、带标签的数据。 这篇完整的工程技术博文包含了详细的栈内存示意图、存在漏洞的汇编指令,以及揭示出两种不同类型故障的崩溃率可视化图表。 https://www.infoq.com/news/2026/07/openai-libunwind-core-dumps/ 声明:本文由 InfoQ 翻译,未经许可禁止转载。
Current article:http://www.zhanggengsenchaiweikeng.cfd/s0bwqh3/20260826/65966.pptx
Published on:15:20:07
我的网站相关阅读
- 存储、网络和苹果!知名投行揭秘:年尾AI交易三大关键词 六大推荐股
- 'Get the F**k Out of Here!' Ilhan Omar Gets Booed at Concert in Minneapolis
- 427万辆车召回!造车十余年、连个门把手都造不好?
- 记者:马尔穆什今日接受热刺体检,交易总价约6000万英镑
- 【盟·全环境立德树人】吉祥味·穿梭在民俗里的中国年—即墨区盟旺路幼儿园、棠邑路园区大班级部喜迎蛇年活动
- 这一落,落出中国航天新高度
- 丰立智能:本次计提信用减值损失及资产减值损失合计减少公司2026年半年度利润总额约950万元
- 公寓式组屋以132万元转售 创宏茂桥新纪录
- 新时代·我在中国|孟加拉国留学生山祖:希望未来在中国生活
我的网站最新文章
- 中文传媒:上半年归母净利润2.89亿元,同比下降0.7%
- 全球限量!华硕推RX 9070 XT鬼武者联名显卡:购卡送游戏码+限定周边
- 2024年法考抚顺考区客观题考试圆满结束
- 国际足联重罚阿根廷队 阿根廷足协:将上诉
- 向日葵 vs ToDesk 2026远程控制软件横评实测
- 章建平大举加仓!6倍牛股业绩猛增
- 5 killed, 17 injured in rain shelter collapse as torrential rainfall batters SW China’s Sichuan, leading to relocation of 21,784
- Vijay Deverakonda to Portray a ‘real and Flawed’ Hero in Rowdy Janardhan
- 图片站变现:壁纸站、表情包站的盈利路径
- 《促进网信企业高质量发展行动计划(2026-2030年)》印发
- 广东开展森林消防“以水灭火”实战拉练
- 8月24日中国人民银行开展3400亿元7天期逆回购操作
- 结束20余年婚姻!明星夫妻承认已离婚
我的网站随机推荐
- 福州汤边社区儿童友好经验获全国推广
- 四川省人大常委会原委员、经济委员会原主任委员刘中伯因严重违纪违法被开除党籍和公职
- 强台风“梅花”来袭 福建多地水上作业项目停工 运输船舶在港防台避风
- ‘Hong Kong Alliance’ found guilty of inciting subversion; verdict clarifies boundaries between free speech and national security
- Man convicted of stealing sports camp tuition funds from hundreds of families
- 存储器合约价飙升!预计2027年占CSP主要支出比重68%
- 国家公共数据资源登记平台已登记量超30万项
- 2024·第228篇丨二幼【精彩活动】 凝心聚力,拔出精彩
- 大银幕见证三分之王!库里新纪录片聚焦4000记三分里程碑
- 18年意大利撕毁与中国190亿高铁合约,还拒赔违约金,最终如何了
- OpenAI要让AI替代“初级投行员工”
- 经中共中央批准:陈春平任云南省委委员、常委
- 突发!37岁威少社交媒体自宣正式退役 结束18年NBA职业生涯
