Finding and reproducing heisenbugs in concurrent programs

Madanlal Musuvathi, Shaz Qadeer, Piramanayagam Arumuga Nainar, Thomas Ball, Gerard Basler, Iulian Neamtiu

Research output: Chapter in Book/Report/Conference proceedingConference contribution

146 Scopus citations

Abstract

Concurrency is pervasive in large systems. Unexpected interference among threads often results in “Heisenbugs” that are extremely difficult to reproduce and eliminate. We have implemented a tool called CHESS for finding and reproducing such bugs. When attached to a program, CHESS takes control of thread scheduling and uses efficient search techniques to drive the program through possible thread interleavings. This systematic exploration of program behavior enables CHESS to quickly uncover bugs that might otherwise have remained hidden for a long time. For each bug, CHESS consistently reproduces an erroneous execution manifesting the bug, thereby making it significantly easier to debug the problem. CHESS scales to large concurrent programs and has found numerous bugs in existing systems that had been tested extensively prior to being tested by CHESS. CHESS has been integrated into the test frameworks of many code bases inside Microsoft and is used by testers on a daily basis.

Original languageEnglish (US)
Title of host publicationProceedings of the 8th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2008
PublisherUSENIX Association
Pages267-280
Number of pages14
ISBN (Electronic)9781931971652
StatePublished - Jan 1 2019
Event8th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2008 - San Diego, United States
Duration: Dec 8 2008Dec 10 2008

Publication series

NameProceedings of the 8th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2008

Conference

Conference8th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2008
Country/TerritoryUnited States
CitySan Diego
Period12/8/0812/10/08

All Science Journal Classification (ASJC) codes

  • Information Systems
  • Computer Networks and Communications
  • Hardware and Architecture

Fingerprint

Dive into the research topics of 'Finding and reproducing heisenbugs in concurrent programs'. Together they form a unique fingerprint.

Cite this