This repository contains counterexamples described in RaceInjector: Injecting Races To Evaluate And Learn Dynamic Race Detection Algorithms
by Michael Wang, Shashank Srikant, Malavika Samak, Una-May O'Reilly, 2023.
Link to paper - [link]
Citation
@inproceedings{
[citation]
}
The counterexamples, which are generated by our method RaceInjector
, are program execution traces with a guaranteed race condition in them which recent race detection algorithms fail to detect.
For clarifications, please contact Michael ([email protected]) or Shashank ([email protected]).
treeset_orig
, arraylist_orig
, and jigsaw_orig
are the original base traces collected by Calfuzzer [link].
These traces correspond to the following program benchmarks:
The race detection algorithms evaluated are:
- Happens-Before (HB; Lamport, 1976) [link]
- Schedulable Happens-Before (SHB; Mathur et al., 2018) [link]
- Weak Causally Precedes (WCP; Kini et al., 2017) [link]
- SyncP (Mathur et al., 2021) [link]
The folder ./{algorithm}_missed
contains counterexamples generated for each program benchmark corresponding to the algorithm.
For example, syncp_missed/treeset
contains all the traces generated from the TreeSet
base trace that each contain a RaceInjector-injected race condition which SyncP
fails to detect.