Frayで30分でJDKデッドロックをデバッグ:並行処理スリラー
2025-06-07
Frayの統合テストを追加中に、一見無害なコードによってトリガーされたJDKのScheduledThreadPoolExecutorでデッドロックが発生しました。Frayの決定論的リプレイとスケジュールの可視化を活用して、根本原因が迅速に特定されました。SHUTDOWN状態では、FutureTask.getが無期限にブロックする可能性があります。これは、scheduleメソッドとshutdownメソッドのインターリーブされた実行に由来し、タスクを保留状態にします。Frayはスレッドインターリーブの明確なビューを提供し、このJDK並行処理バグの再現と報告を可能にしました。
(aoli.al)
開発