Detecting atomic-set serializability violations in multithreaded programs through active randomized testing

Concurrency bugs are notoriously difficult to detect because there can be vast combinations of interleavings among concurrent threads, yet only a small fraction can reveal them. Atomic-set serializability characterizes a wide range of concurrency bugs, including data races and atomicity violations....

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:2010 ACM/IEEE 32nd International Conference on Software Engineering Jg. 1; S. 235 - 244
Hauptverfasser: Lai, Zhifeng, Cheung, S. C., Chan, W. K.
Format: Tagungsbericht
Sprache:Englisch
Japanisch
Veröffentlicht: New York, NY, USA ACM 01.05.2010
IEEE
Schriftenreihe:ACM Conferences
Schlagworte:
ISBN:9781605587196, 1605587192
ISSN:0270-5257
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:Concurrency bugs are notoriously difficult to detect because there can be vast combinations of interleavings among concurrent threads, yet only a small fraction can reveal them. Atomic-set serializability characterizes a wide range of concurrency bugs, including data races and atomicity violations. In this paper, we propose a two-phase testing technique that can effectively detect atomic-set serializability violations. In Phase I, our technique infers potential violations that do not appear in a concrete execution and prunes those interleavings that are violation-free. In Phase II, our technique actively controls a thread scheduler to enumerate these potential scenarios identified in Phase I to look for real violations. We have implemented our technique as a prototype system AssetFuzzer and applied it to a number of subject programs for evaluating concurrency defect analysis techniques. The experimental results show that AssetFuzzer can identify more concurrency bugs than two recent testing tools RaceFuzzer and AtomFuzzer.
ISBN:9781605587196
1605587192
ISSN:0270-5257
DOI:10.1145/1806799.1806836