Affiliation:
1. University of Illinois at Urbana-Champaign
Abstract
Despite the numerous static and dynamic program analysis techniques in the literature, data races remain one of the most common bugs in modern concurrent software. Further, the techniques that do exist either have limited detection capability or are unsound, meaning that they report false positives. We present a sound race detection technique that achieves a provably higher detection capability than existing sound techniques. A key insight of our technique is the inclusion of abstracted control flow information into the execution model, which increases the space of the causal model permitted by classical happens-before or causally-precedes based detectors. By encoding the control flow and a minimal set of feasibility constraints as a group of first-order logic formulae, we formulate race detection as a constraint solving problem. Moreover, we formally prove that our formulation achieves the maximal possible detection capability for any sound dynamic race detector with respect to the same input trace under the sequential consistency memory model. We demonstrate via extensive experimentation that our technique detects more races than the other state-of-the-art sound race detection techniques, and that it is scalable to executions of real world concurrent applications with tens of millions of critical events. These experiments also revealed several previously unknown races in real systems (e.g., Eclipse) that have been confirmed or fixed by the developers. Our tool is also adopted by Eclipse developers.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference39 articles.
1. https://bugs.eclipse.org/bugs/show_bug.cgi?id=419383. https://bugs.eclipse.org/bugs/show_bug.cgi?id=419383.
2. https://bugs.eclipse.org/bugs/show_bug.cgi?id=419543. https://bugs.eclipse.org/bugs/show_bug.cgi?id=419543.
3. http://www.eclipse.org/virgo/. http://www.eclipse.org/virgo/.
4. Barrier inference
5. The DaCapo benchmarks
Cited by
32 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. RaceInjector: Injecting Races to Evaluate and Learn Dynamic Race Detection Algorithms;Proceedings of the 12th ACM SIGPLAN International Workshop on the State Of the Art in Program Analysis;2023-06-06
2. Detection of Inconsistencies in Privacy Practices of Browser Extensions;2023 IEEE Symposium on Security and Privacy (SP);2023-05
3. An Experimental Evaluation of Tools for Grading Concurrent Programming Exercises;Formal Techniques for Distributed Objects, Components, and Systems;2023
4. Lincheck: A Practical Framework for Testing Concurrent Data Structures on JVM;Computer Aided Verification;2023
5. Do Opt-Outs Really Opt Me Out?;Proceedings of the 2022 ACM SIGSAC Conference on Computer and Communications Security;2022-11-07