Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1 2010
DOI: 10.1145/1806799.1806836
|View full text |Cite
|
Sign up to set email alerts
|

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 execu… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

1
44
0
1

Year Published

2011
2011
2021
2021

Publication Types

Select...
3
3
2

Relationship

0
8

Authors

Journals

citations
Cited by 73 publications
(46 citation statements)
references
References 33 publications
1
44
0
1
Order By: Relevance
“…There are several tools and techniques that follow this philosophy: for instance, the CHESS tool from Microsoft [18] tests all interleavings that use a bounded number preemptions (unforced context-switches), pursuing the belief that most errors can be made to manifest this way. Several tools concentrate on testing atomicity violating patterns (for varying notions of what atomicity means), with the philosophy that they are much more likely to contain bugs [17,19,20,33]. However, systematically testing even smaller classes of interleavings is often impossible in practice, as there are often too many of them.…”
Section: Approximation To the Shared Communication Levelmentioning
confidence: 99%
“…There are several tools and techniques that follow this philosophy: for instance, the CHESS tool from Microsoft [18] tests all interleavings that use a bounded number preemptions (unforced context-switches), pursuing the belief that most errors can be made to manifest this way. Several tools concentrate on testing atomicity violating patterns (for varying notions of what atomicity means), with the philosophy that they are much more likely to contain bugs [17,19,20,33]. However, systematically testing even smaller classes of interleavings is often impossible in practice, as there are often too many of them.…”
Section: Approximation To the Shared Communication Levelmentioning
confidence: 99%
“…Note that we do not address here the problem of executing the test program on a random schedule. There exists much prior work on generating thread schedules for testing concurrent software, including noise making [7,25], active random scheduling [22,13], or model checking [27,17].…”
Section: Phase I Of Relaxermentioning
confidence: 99%
“…This work applies active random testing [22,13] to predict and reproduce violations of sequential consistency in parallel programs. Several other recent techniques have been proposed to confirm potential bugs in parallel programs using random testing.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…Reasoning about conflicting accesses that are simultaneously enabled but ineffective on the rest of the execution is the main challenge in both static [7,16,31] and dynamic [3,14,21,23,33,34] techniques for checking atomicity and linearizability. The Purity work [13] and QED [10] provide static analyses to rule out spurious warnings due to such conflicts by abstracting these operations to no-op's.…”
Section: Related Workmentioning
confidence: 99%