Detecting atomic-set serializability violations in multithreaded programs through active randomized testing
Abstract
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.
BibTeX
@inproceedings{Lai-al:ICSE10,
author = {Zhifeng Lai and
Shing{-}Chi Cheung and
Wing Kwong Chan},
title = {Detecting atomic-set serializability violations in multithreaded programs through active randomized testing},
booktitle = {ICSE (Part I)},
pages = {235--244},
publisher = {{ACM}},
year = {2010},
}