Sciweavers

FASE
2010
Springer

A Lightweight and Portable Approach to Making Concurrent Failures Reproducible

14 years 6 months ago
A Lightweight and Portable Approach to Making Concurrent Failures Reproducible
Multithreaded concurrent programs often exhibit bugs due to unintended interferences among the concurrent threads. Such bugs are often hard to reproduce because they typically happen under very specific interleaving of the executing threads. Basically, it is very hard to fix a bug (or software failure) in concurrent programs without being able to reproduce it. In this paper, we present an approach, called ConCrash, that automatically and deterministically reproduces concurrent failures by recording logical thread schedule and generating unit tests. For a given bug (failure), ConCrash records the logical thread scheduling order and preserves object states in memory at runtime. Then, ConCrash reproduces the failure offline by simply using the saved information without the need for JVM-level or OS-level support. To reduce the runtime performance overhead, ConCrash employs a static datarace detection technique to report all possible race conditions, and only instruments such places. We...
Qingzhou Luo, Sai Zhang, Jianjun Zhao, Min Hu
Added 18 May 2010
Updated 18 May 2010
Type Conference
Year 2010
Where FASE
Authors Qingzhou Luo, Sai Zhang, Jianjun Zhao, Min Hu
Comments (0)