Affiliation:
1. University of California at Los Angeles, USA
Abstract
For a concurrent program, a prediction tool maps the history of a single run to a prediction of bugs in an exponential number of other runs. If all those bugs can occur, then the tool is sound. This is the case for some data race tools like RVPredict, but was, until now, not the case for deadlock tools. We present the first sound tool for predicting deadlocks in Java. Unlike previous work, we use request events and a novel form of executability constraints that enable sound and effective deadlock prediction. We model prediction as a general decision problem, which we show is decidable and can be instantiated to both deadlocks and data races. Our proof of decidability maps the decision problem to an equivalent constraint problem that we solve using an SMT-solver. Our experiments show that our tool finds real deadlocks effectively, including some missed by DeadlockFuzzer, which verifies each deadlock candidate by re-executing the input program. Our experiments also show that our tool can be used to predict more, real data races than RVPredict.
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Reference38 articles.
1. Dynamic Deadlock Analysis of Multi-threaded Programs
2. The DaCapo benchmarks
3. Taming reflection
4. Eric Bruneton Romain Lenglet and Thierry Coupaye. 2002. ASM: a code manipulation tool to implement adaptable systems. Adaptable and extensible component systems 30 19 (2002). Eric Bruneton Romain Lenglet and Thierry Coupaye. 2002. ASM: a code manipulation tool to implement adaptable systems. Adaptable and extensible component systems 30 19 (2002).
Cited by
27 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. CSSTs: A Dynamic Data Structure for Partial Orders in Concurrent Execution Analysis;Proceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 3;2024-04-27
2. On the Effectiveness of Machine Learning-based Call Graph Pruning: An Empirical Study;Proceedings of the 21st International Conference on Mining Software Repositories;2024-04-15
3. Optimistic Prediction of Synchronization-Reversal Data Races;Proceedings of the IEEE/ACM 46th International Conference on Software Engineering;2024-04-12
4. PredRacer: Predictively Detecting Data Races in Android Applications;2024 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER);2024-03-12
5. Reorder Pointer Flow in Sound Concurrency Bug Prediction;Proceedings of the IEEE/ACM 46th International Conference on Software Engineering;2024-02-06