Fray 协助 30 分钟内调试 JDK 死锁:一个并发编程的惊险故事
2025-06-07
作者在使用 Fray 进行集成测试时,发现一个看似简单的代码片段会导致 JDK 的 ScheduledThreadPoolExecutor 出现死锁。通过 Fray 的确定性回放和调度可视化功能,作者快速定位了问题:在 SHUTDOWN 状态下,FutureTask.get 方法可能无限期阻塞。这源于 schedule 方法和 shutdown 方法执行的交错,导致任务进入一种 limbo 状态。Fray 帮助作者清晰地观察到线程交错的细节,最终成功重现并报告了这个 JDK 的并发 bug。
(aoli.al)
开发
Fray