Interleaving Generation for Data Race and Deadlock Reproduction
-
Tagung:
Konferenzartikel
-
Autoren:
Luis M. Carril
Walter F. Tichy -
Summary
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.
-
Jahr:
2015
- Links:
Titel Vorname Nachname |
---|
Dr. Luis Manuel Carril Rodriguez |
Prof. em. Dr. Walter F. Tichy |
Titel |
---|
Forschungsprojekt AParT - Entwurfsmustergestütze Anwendungsparallelisierung |
SRG Entwurfsmustergestützte Anwendungsparallelisierung |
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},
}