Partial Orders for Precise and Efficient Dynamic Deadlock Prediction
Bas van den Heuvel, Martin Sulzmann, Peter Thiemann
TL;DR
This work tackles the challenge of false positives in dynamic deadlock prediction for concurrent programs by introducing partial-order inspired refinements to deadlock patterns. It presents a new TRW partial order that yields sound predictions and a weaker PWR variant that guarantees completeness, with an offline implementation and extensive benchmarks showing they report the same deadlocks as leading methods but with improved precision. The authors prove key properties, define concrete and abstract lock dependencies, and provide an efficient two-phase pipeline to compute partial orders and verify deadlock patterns. Empirically, TRW and PWR offer complementary guarantees, enabling practical, scalable deadlock prediction for real-world traces and paving the way for robust, sound-deadlock-prevention tooling.
Abstract
Deadlocks are a major source of bugs in concurrent programs. They are hard to predict, because they may only occur under specific scheduling conditions. Dynamic analysis attempts to identify potential deadlocks by examining a single execution trace of the program. A standard approach involves monitoring sequences of lock acquisitions in each thread, with the goal of identifying deadlock patterns. A deadlock pattern is characterized by a cyclic chain of lock acquisitions, where each lock is held by one thread while being requested by the next. However, it is well known that not all deadlock patterns identified in this way correspond to true deadlocks, as they may be impossible to manifest under any schedule. We tackle this deficiency by proposing a new method based on partial orders to eliminate false positives: lock acquisitions must be unordered under a given partial order, and not preceded by other deadlock patterns. We prove soundness (no falsely predicted deadlocks) for the novel TRW partial order, and completeness (no deadlocks missed) for a slightly weakened variant of TRW. Both partial orders can be computed efficiently and report the same deadlocks for an extensive benchmark suite.
