| CTrigger: exposing atomicity violation bugs from their hiding places |
| Full text |
Pdf
(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 |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 34, Downloads (12 Months): 321, Citation Count: 1
|
|
|
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
|
Arkady Bron , Eitan Farchi , Yonit Magid , Yarden Nir , Shmuel Ur, Applications of synchronization coverage, Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming, June 15-17, 2005, Chicago, IL, USA
[doi> 10.1145/1065944.1065972]
|
| |
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
|
Shan Lu , Soyeon Park , Eunsoo Seo , Yuanyuan Zhou, Learning from mistakes: a comprehensive study on real world concurrency bug characteristics, Proceedings of the 13th international conference on Architectural support for programming languages and operating systems, March 01-05, 2008, Seattle, WA, USA
[doi> 10.1145/1346281.1346323]
|
 |
13
|
Shan Lu , Joseph Tucek , Feng Qin , Yuanyuan Zhou, AVIO: detecting atomicity violations via access interleaving invariants, Proceedings of the 12th international conference on Architectural support for programming languages and operating systems, October 21-25, 2006, San Jose, California, USA
[doi> 10.1145/1168857.1168864]
|
 |
14
|
|
 |
15
|
Chi-Keung Luk , Robert Cohn , Robert Muth , Harish Patil , Artur Klauser , Geoff Lowney , Steven Wallace , Vijay Janapa Reddi , Kim Hazelwood, Pin: building customized program analysis tools with dynamic instrumentation, Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation, June 12-15, 2005, Chicago, IL, USA
[doi> 10.1145/1065010.1065034]
|
 |
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
|
Mandana Vaziri , Frank Tip , Julian Dolby, Associating synchronization constraints with data in an object-oriented language, Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.334-345, January 11-13, 2006, Charleston, South Carolina, USA
[doi> 10.1145/1111037.1111067]
|
 |
26
|
Steven Cameron Woo , Moriyoshi Ohara , Evan Torrie , Jaswinder Pal Singh , Anoop Gupta, The SPLASH-2 programs: characterization and methodological considerations, Proceedings of the 22nd annual international symposium on Computer architecture, p.24-36, June 22-24, 1995, S. Margherita Ligure, Italy
[doi> 10.1145/223982.223990]
|
 |
27
|
|
 |
28
|
Cheer-Sun D. Yang , Amie L. Souter , Lori L. Pollock, All-du-path coverage for parallel programs, Proceedings of the 1998 ACM SIGSOFT international symposium on Software testing and analysis, p.153-162, March 02-04, 1998, Clearwater Beach, Florida, United States
[doi> 10.1145/271771.271804]
|
 |
29
|
|
CITED BY 4
|
|
|
|
|
Soyeon Park , Yuanyuan Zhou , Weiwei Xiong , Zuoning Yin , Rini Kaushik , Kyu H. Lee , Shan Lu, PRES: probabilistic replay with execution sketching on multiprocessors, Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles, October 11-14, 2009, Big Sky, Montana, USA
|
|
|
|
|
|
|
|