• Documents
  • Authors
  • Tables
  • Log in
  • Sign up
  • MetaCart
  • DMCA
  • Donate

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

DMCA

Isolating and Understanding Concurrency Errors Using Reconstructed Execution Fragments

Cached

  • Download as a PDF

Download Links

  • [www.cs.washington.edu]
  • [homes.cs.washington.edu]
  • [homes.cs.washington.edu]
  • [abstract.cs.washington.edu]
  • [abstract.cs.washington.edu]
  • [homes.cs.washington.edu]
  • [brandonlucia.com]

  • Save to List
  • Add to Collection
  • Correct Errors
  • Monitor Changes
by Brandon Lucia , Benjamin P. Wood , Luis Ceze
Citations:11 - 4 self
  • Summary
  • Citations
  • Active Bibliography
  • Co-citation
  • Clustered Documents
  • Version History

BibTeX

@MISC{Lucia_isolatingand,
    author = {Brandon Lucia and Benjamin P. Wood and Luis Ceze},
    title = {Isolating and Understanding Concurrency Errors Using Reconstructed Execution Fragments},
    year = {}
}

Share

Facebook Twitter Reddit Bibsonomy

OpenURL

 

Abstract

In this paper we propose Recon, a new general approach to concurrency debugging. Recon goes beyond just detecting bugs, it also presents to the programmer short fragments of buggy execution schedules that illustrate how and why bugs happened. These fragments, called reconstructions, are inferred from inter-thread communication surrounding the root cause of a bug and significantly simplify the process of understanding bugs. The key idea in Recon is to monitor executions and build graphs that encode inter-thread communication with enough context information to build reconstructions. Recon leverages reconstructions built from multiple application executions and uses machine learning to identify which ones illustrate the root cause of a bug. Recon’s approach is general because it does not rely on heuristics specific to any type of bug, application, or programming-model. Therefore, it is able to deal with single- and multiple-variable concurrency bugs regardless of their type (e.g., atomicity violation, ordering, etc). To make graph collection efficient, Recon employs selective monitoring and allows metadata information to be imprecise without compromising accuracy. With these optimizations, Recon’s graph collection imposes overheads typically between 5x and 20x for both C/C++ and Java programs, with overheads as low as 13 % in our experiments. We evaluate Recon with buggy applications, and show it produces reconstructions that include all code points involved in bugs ’ causes, and presents them in an accurate order. We include a case study of understanding and fixing a previously unresolved bug to showcase Recon’s effectiveness.

Keyphrases

root cause    inter-thread communication    recon effectiveness    graph collection imposes    multiple application execution    buggy application    case study    atomicity violation    metadata information    enough context information    bug cause    selective monitoring    programmer short fragment    key idea    buggy execution schedule    graph collection efficient    recon approach    multiple-variable concurrency bug    unresolved bug    new general approach    accurate order    code point    java program   

Powered by: Apache Solr
  • About CiteSeerX
  • Submit and Index Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2019 The Pennsylvania State University