作者用 LLM 主动穷举线程顺序,揪出测试跑不出的并发 bug
cto_junior · x · 2026-09-23
ctojunior 发了一个完整的线程,讲述如何让模型抓到一个连测试套件都漏掉的并发 bug:
- 背景:班次切换场景中,worker A 顺序处理更新队列,worker B 从 checkpoint 接管;A 可能已应用了 checkpoint 之后的几条更新,B 又会重复应用,需要 A 先 undo 多余更新并加锁让 B 等待。
- bug 实质:真实代码在 undo 执行前就释放了锁,赌的是 undo 能赢下竞态。同一输入,不同线程交错会得到 2 或 3 两个不同结果。
- 为什么测试没发现:测试只能跑机器碰巧选中的线程顺序;模型则自己选择执行顺序,并不断尝试新的交错方式。
- 方法论:作者把 undo 拆成真实步骤、把锁变成调度器可见的对象,原则是「在线程可能插入的地方都拆开」——这一次模型就找到了产生结果 3 的交错,而等待 undo 的路径给出 2。
核心启发:LLM 可以作为「主动的并发调度器」去系统性探索竞态,而不是被动跑随机测试。
所属事件:工程师用 LLM 穷举线程顺序揪出并发 bug(4 条相关)→
「编程与Agent」频道最新
- Sebastian Raschka:开源 agent harness 真正价值在可审查,不在免费 — rasbt · 2026-09-23
- 跨平台发布工具 Ferryman 冲刺 $10k MRR,支持从 Claude/Cursor 直发全网 — KevinNaughtonJr · 2026-09-23
- 给 AI 智能体一个真实 macOS 账户:Agent Desktop 开源更新 — jasonkneen · 2026-09-23
- Swarms 发布五篇生态指南,正面对比 CrewAI 与 LangGraph 等框架 — KyeGomezB · 2026-09-23
- 15 年投放老手自建广告 MCP:接 14 个平台,写入默认暂停 — DapperManagement1306 · 2026-09-23
- Next.js next/og 爆出严重 RCE 漏洞,Satori SVG 转义缺陷所致 — evilsocket · 2026-09-23