• 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