Recent research has proposed several analyses to mitigate the fact that finding concurrency bugs in multi-threaded software is notoriously hard. This work proposes a new analysis based on a correctness criterion called "atomic-set serializability", which incorporates both race conditions and traditional atomicity/serializability. We present a novel analysis based on conflict cycle detection that is guaranteed to find all violations in the intercepted execution trace. A set of heuristics automatically determines all annotations required for atomic-set serializability. We implemented the analysis and evaluated it on a suite consisting of real programs and benchmarks. The evaluation demonstrates the usefulness of our heuristics by finding a number of known (as well as new) violations with competitive overhead and a very low false positive rate.
@inproceedings{DBLP:conf/rv/SumnerHD11,
author = {William N. Sumner and
Christian Hammer and
Julian Dolby},
title = {Marathon: Detecting Atomic-Set Serializability Violations
with Conflict Graphs},
booktitle = {RV},
year = {2011},
pages = {161-176},
ee = {http://dx.doi.org/10.1007/978-3-642-29860-8_13},
crossref = {DBLP:conf/rv/2011},
bibsource = {DBLP, http://dblp.uni-trier.de}
}