Interleaving Generation for Data Race and Deadlock Reproduction
Interleaving Generation for Data Race and Deadlock Reproduction
Name: | Konferenzartikel |
Year: | 2015 |
Author: | Luis M. Carril
Walter F. Tichy |
Links: | PDF |
|
Zusammenfassung
Concurrency errors, like data races and deadlocks, are difficult to find due to the large number of possible interleavings in a parallel program. Dynamic tools analyze a single observed execution of a program, and even with multiple executions they can not reveal possible errors in other reorderings. This work takes a single program observation and produces a set of alternative orderings of the synchronization primitives that lead to a concurrency error. The new reorderings are enforced under a happens-before detector to discard reordering that are infeasible or do not produce any error report. We evaluate our approach against multiple repetitions of a state of the art happens-before detector. The results show that through interleaving inference more errors are found and the counterexamples enable easier reproducibility by the developer.
Bibtex
@inproceedings{Carril2015b,
author={Luis M. Carril and Walter F. Tichy},
title={Interleaving Generation for Data Race and Deadlock Reproduction},
year=2015,
month=10,
booktitle={Proceedings of the 2nd International Workshop on Software Engineering for Parallel Systems, SEPS 2015},
publisher={ACM New York, NY, USA ©2015},
url={https://ps.ipd.kit.edu/downloads/},
isbn={978-1-4503-3910-0},
url={https://ps.ipd.kit.edu/downloads/},
doi={10.1145/2837476.2837480},
abstract={Concurrency errors, like data races and deadlocks, are difficult to find due to the large number of possible interleavings in a parallel program. Dynamic tools analyze a single observed execution of a program, and even with multiple executions they can not reveal possible errors in other reorderings. This work takes a single program observation and produces a set
of alternative orderings of the synchronization primitives that lead to a concurrency error. The new reorderings are enforced under a happens-before detector to discard reorderings that
are infeasible or do not produce any error report. We evaluate our approach against multiple repetitions of a state of the art happens-before detector. The results show that through
interleaving inference more errors are found and the counterexamples enable easier reproducibility by the developer.},
pages={26-34},
}