Antithesis 一小时复现 SQLite 十年 BUG
Breaking the WAL
我是 Carl,SQLite 团队在 2026 年修复了一个自 2010 年存在的 WAL-Reset 数据竞争 BUG,该问题曾导致 Tailscale 经历了半年的服务不稳定。作为一名数据库爱好者,我在 Sunshine Coast 的旅途中,利用刚发布的 Claude 技能,在 Antithesis 平台上对 SQLite 3.51.2 版本进行了自动化测试。仅用 15 分钟,我就成功复现了这个连官方都难以触发的罕见缺陷,并验证了 3.51.3 修复版的有效性。相比 Tailscale 团队耗时数月、投入大量人力构建调试工具才定位到的困境,Antithesis 结合 AI Agent 的能力让这一过程变得异常高效。这不仅证明了工具的强大,更揭示了在复杂并发场景下,智能测试如何大幅缩短从发现问题到验证修复的周期。
对于像 WAL-Reset 这样的罕见且棘手的 BUG,真正的折磨往往不在于寻找它们,而在于等待确认你的修复方案是否真正有效。
HN 评论区
51- carlsverre
大家好!我是作者,也是今年七月在公路旅行途中决定做这个实验的人。终于能把这篇博客发出来,我超级兴奋,更棒的是,我们还有一篇配套文章详细描述了项目中定位根本原因的过程。关于 Tailscale 的故事,大家可以看这里:https://tailscale.com/blog/sqlite-wal-reset-bug
我唯一遗憾的是没能更早地在今年年初就把 SQLite 纳入测试,那样的话这个问题早就被发现了。如果你看看这个工作负载[1],会发现它有多简单。这完全就是我们每天用来帮客户找 Bug 的那类工作负载。
如果你对我们的流程或者如何使用 Antithesis 进行调试有任何疑问,请随时告诉我!谢谢阅读!
[1]: https://github.com/antithesishq/sqlite/blob/3.51.2-instrumen...
- minimaltom
我点进去看了看,想找找他们给 AI 的提示词(prompt),看看它是如何定位问题或编写测试套件的。
我没找到,所以不清楚这个提示词是纯粹的“写个测试套件”,还是被引导着先去寻找问题,如果是后者,那这就不是个公平的测试。
我找到的关于提示词最接近的描述是:
> 然后我让它写一个简单的工作负载,用来测试 WAL 插入和检查点代码。值得注意的是,这是一个完全通用的工作负载。
带着怀疑的眼光看,这还不太清楚。
- wwilson
我们想尽快发布这篇内容,因为大家都在讨论这个 Bug。在后续文章中,我们将展示我们的自动化因果分析如何能帮 Tailscale 和 SQLite 省去 6 个月的根本原因分析时间。敬请期待!
- uhohherewegoaga
作为一个长期潜水、通常很欣赏 Antithesis 帖子的用户,这篇读起来让人倍感存在主义的悲伤。我们都知道这里的公司博客本质上往往都是广告,但据我记忆,Antithesis 历来把握得不错,能把“我们卖的东西真好”作为配菜,而把“我(作者)做了非常有趣的深度思考和/或艰苦工作来完成某件酷事”作为主菜。
这篇在我看来在这方面彻底垮了。