ACM Home Page
Please provide us with feedback. Feedback
Digital Library logoTake a look at the new version of this page: [ beta version ]. Tell us what you think.
CTrigger: exposing atomicity violation bugs from their hiding places
Full text PdfPdf (645 KB)
Source
Architectural Support for Programming Languages and Operating Systems archive
Proceeding of the 14th international conference on Architectural support for programming languages and operating systems table of contents
Washington, DC, USA
SESSION: Reliable systems I table of contents
Pages: 25-36  
Year of Publication: 2009
ISBN:978-1-60558-406-5
Also published in ...
Authors
Soyeon Park  University of Illinois at Urbana Champaign, Urbana, IL, USA
Shan Lu  University of Illinois at Urbana Champaign, Urbana, IL, USA
Yuanyuan Zhou  University of Illinois at Urbana Champaign, Urbana, IL, USA
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
SIGOPS: ACM Special Interest Group on Operating Systems
ACM: Association for Computing Machinery
SIGARCH: ACM Special Interest Group on Computer Architecture
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 33,   Downloads (12 Months): 297,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1508244.1508249
What is a DOI?

Warning: The download time has expired please click on the item to try again.


ABSTRACT

Multicore hardware is making concurrent programs pervasive. Unfortunately, concurrent programs are prone to bugs. Among different types of concurrency bugs, atomicity violation bugs are common and important. Existing techniques to detect atomicity violation bugs suffer from one limitation: requiring bugs to manifest during monitored runs, which is an open problem in concurrent program testing.

This paper makes two contributions. First, it studies the interleaving characteristics of the common practice in concurrent program testing (i.e., running a program over and over) to understand why atomicity violation bugs are hard to expose. Second, it proposes CTrigger to effectively and efficiently expose atomicity violation bugs in large programs. CTrigger focuses on a special type of interleavings (i.e., unserializable interleavings) that are inherently correlated to atomicity violation bugs, and uses trace analysis to systematically identify (likely) feasible unserializable interleavings with low occurrence-probability. CTrigger then uses minimum execution perturbation to exercise low-probability interleavings and expose difficult-to-catch atomicity violation.

We evaluate CTrigger with real-world atomicity violation bugs from four sever/desktop applications (Apache, MySQL, Mozilla, and PBZIP2) and three SPLASH2 applications on 8-core machines. CTrigger efficiently exposes the tested bugs within 1--235 seconds, two to four orders of magnitude faster than stress testing. Without CTrigger, some of these bugs do not manifest even after 7 full days of stress testing. In addition, without deterministic replay support, once a bug is exposed, CTrigger can help programmers reliably reproduce it for diagnosis. Our tested bugs are reproduced by CTrigger mostly within 5 seconds, 300 to over 60000 times faster than stress testing.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
3
 
4
O. Edelstein, E. Farchi, Y. Nir, G. Ratsaby, and S. Ur.Multi-threaded Java program test generation. In IBM Systems Journal, 2002.
5
6
7
 
8
M. J. Harrold, and B. A. Malloy. Data flow testing of parallelized code. In ICSM, 1992.
9
 
10
J. R. Larus, and R. Rajwar. Transactional memory. Morgan & Claypool, 2006.
11
12
13
14
15
16
 
17
M. Musuvathi, S. Qadeer, T. Ball, and G. Basler. Finding and reproducing heisenbugs in concurrent programs. In OSDI, 2008.
18
19
20
 
21
Software Bug Contributed to Blackout. SecurityFocus. http://www.securityfocus.com/news/8016
22
 
23
K. Sen, and G. Agha. Automated systematic testing of open distributed programs. In FSE, 2006.
 
24
25
26
27
28
29


Collaborative Colleagues:
Soyeon Park: colleagues
Shan Lu: colleagues
Yuanyuan Zhou: colleagues