Effective static race detection for Java
By Mayur Naik, A. Aiken, John Whaley. ACM-SIGPLAN Symposium on Programming Language Design and Implementation, 2006
602 citations recorded by the source corpus.
We present a novel technique for static race detection in Java programs, comprised of a series of stages that employ a combination of static analyses to successively reduce the pairs of memory accesses potentially involved in a race. We have implemented our technique and applied it to a suite of multi-threaded Java programs. Our experiments show that it is precise, scalable, and useful, reporting tens to hundreds of serious and previously unknown concurrency bugs in large, widely-used programs with few false alarms.
Subfields: Computer Networks and Communications, Hardware and Architecture, Software
View Paper: https://www.semanticscholar.org/paper/755c4ebfd74bcaf4815ecc71dc8b14dd4b2bcbc3
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Computer Networks and Communications
- Ranjit Jhala
- Sorin Lerner
- Jan Wen Voung
- Koushik Sen
- Cormac Flanagan
- Mayur Naik
- Aditya V. Nori
- Stephen N. Freund
In Hardware and Architecture
- Koushik Sen
- Ranjit Jhala
- Sorin Lerner
- Jan Wen Voung
- Cormac Flanagan
- Stephen N. Freund
- Mayur Naik
- Ondřej Lhoták
In Software
- Koushik Sen
- Ranjit Jhala
- Aditya V. Nori
- Mayur Naik
- Sorin Lerner
- Cormac Flanagan
- Xin Zhang
- Martin Bravenboer
Citations in the corpus
- Race directed random testing of concurrent programs (2008, background): “detection [33, 32] have significantly reduced the number of false warnings with minimal annotations, but the problem of false positives still remains.”
- Refinement-based context-sensitive points-to analysis for Java (2006, neutral): “1 lib Object-sensitive [21, 23] Sub X X 1-limited Naik [24] Sub X X 3-limited Current paper Sub X X X”
- RELAY: static race detection on millions of lines of code (2007, background): “As a result, many modular type-based [10, 3] and flow-insensitive [20, 19] approaches cannot be applied in this setting, and instead a precise flow-sensitive approach is required.”
- FastTrack: efficient and precise dynamic race detection (2009, background): “FASTTRACK is even comparable in speed to ERASER on our Java benchmarks, while never reporting false alarms.”
- Pick your contexts well: understanding object-sensitivity (2011, background): “[13], there has been accumulating evidence [3, 7, 8, 10, 14] that it is a superior context abstraction for object-oriented programs, yielding high precision relative to cost.”
- Strictly declarative specification of sophisticated points-to analyses (2009, background): “’s bddbddb and its client analyses [21, 28, 29]) did not support onthe-fly call-graph discovery, except for very simple, contextinsensitive, analyses.”
- A user-guided approach to program analysis (2015, methodology): “We illustrate our approach using the example of applying the static race detection tool Chord [30] to a real-world multi-threaded Java program, Apache FTP server [1].”
- A Survey on Software Fault Localization (2016, neutral): “Tools such as Chord [262] and RacerX [106] can statically analyze a program to find concurrency bugs.”