DocumentCode
1340944
Title
Detecting Concurrency Bugs from the Perspectives of Synchronization Intentions
Author
Lu, Shan ; Park, Soyeon ; Zhou, Yuanyuan
Author_Institution
Comput. Sci. Dept., Univ. of Wisconsin - Madison, Madison, WI, USA
Volume
23
Issue
6
fYear
2012
fDate
6/1/2012 12:00:00 AM
Firstpage
1060
Lastpage
1072
Abstract
Concurrency bugs are among the most difficult to detect and diagnose of all software bugs. This paper combats concurrency bugs from the perspective of programmers´ synchronization intentions. We first study the root causes of 74 real-world concurrency bugs to understand what types of synchronization assumptions are violated in real world. This study reveals two classes of synchronization intentions that are common, frequently violated, and understudied-single-variable atomicity intention and multivariable correlation intention. Following this study, two bug detection tools, AVIO and MUVI, are proposed to automatically infer these two types of synchronization intentions and detect related bugs. Specifically, AVIO automatically extracts access interleaving invariants and detects a variety of atomicity-violations during production runs. It can work both with and without special hardware support in our implementation. MUVI automatically infers multivariable correlations through static analysis and detects multivariable concurrency bugs. Our evaluation with real-world large multithreaded applications shows that AVIO can detect more atomicity-violation bugs with 15 times fewer false positives on average than previous solutions. Besides, AVIO-H incurs negligible (0.4-0.5 percent) overhead. MUVI successfully extracts 6,449 access correlations from Linux, Mozilla, MySQL, and PostgreSQL with high (83 percent) accuracy. Race detectors extended by MUVI can correctly identify the root causes of real-world multivariable concurrency bugs in our experiments. They also report four new multivariable concurrency bugs that have never been reported before.
Keywords
program debugging; program diagnostics; AVIO; Linux; Mozilla; MySQL; PostgreSQL; atomicity violation bugs; concurrency bug detection; multithreaded applications; multivariable concurrency bugs; multivariable correlation intention; single variable atomicity intention; software bug detection; software bugs diagnosis; synchronization intentions; Artificial intelligence; Computer bugs; Concurrent computing; Correlation; Software; Synchronization; Training; Concurrency bugs; atomicity violation; bug detection.;
fLanguage
English
Journal_Title
Parallel and Distributed Systems, IEEE Transactions on
Publisher
ieee
ISSN
1045-9219
Type
jour
DOI
10.1109/TPDS.2011.254
Filename
6035702
Link To Document