Partial Orders for Precise and Efficient Dynamic Deadlock Prediction
Journal:
arXiv
Published Date:
Feb 27, 2025
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.