JetBrains Said No Static Tool Catches This Freeze Bug. We Built One — And Found a Real Instance in Their Own Code.
说明与用途
Background ReadAction Freeze Companion 发现了 JetBrains 代码中未被现有静态分析工具捕获的真实冻结错误。
问题
IntelliJ IDE freezes caused by background threads calling blocking, non‑cancellable read‑lock APIs while a write action is pending, with no existing static‑analysis tool detecting the pattern.
结果
The plugin successfully identified a real freeze bug in JetBrains’ own code, leading to a filed issue and a suggested fix.
工作流
- Identify background‑thread entry points
- Build interprocedural call‑graph traversal to blocking read‑lock APIs
- Distinguish deprecated vs discouraged APIs
- Detect cancellation checks and downgrade hits
- Validate against intellij‑community source
- Add uncovered background entry points
- Run on Java test‑execution module
- Find real hit in SearchForTestsTask
- File issue IJPL‑254654 with source reference and fix suggestion
证据
there's no static tool that catches this today. Detection is manual — reading a thread dump after the freeze already happened in someone's real IDE.
Background ReadAction Freeze Companion, a free, open-source IntelliJ Platform plugin that statically traces exactly this pattern.
I filed it: IJPL-254654, with the exact source reference and a suggested fix mirroring the pattern already used nine lines above it.
- 记录日期: 2026-10-01T16:40:46.457Z