Isolating Failure-Inducing Thread Schedules
Jong-Deok Choi and Andreas Zeller

Lehrstuhl für Softwaretechnik (Prof. Zeller)
Universität des Saarlandes – Informatik
Informatik Campus des Saarlandes
Campus E9 1 (CISPA)
66123 Saarbrücken
E-mail: zeller @ cs.uni-saarland.de
Telefon: +49 681 302-70970

Deutschsprachige Startseite Page d'acceuil en franšais English home page
   Jong-Deok Choi and Andreas Zeller. Isolating Failure-Inducing Thread Schedules. Proc. International Symposium on Software Testing and Analysis (ISSTA 2002), Rome, Italy, July 2002. Also appeared as IBM Research Report RC22440 (W0205-083).
"We recommend that capturing, replaying and isolating thread schedules be an integrated part of testing and debugging concurrent applications. Each time a test fails, delta debugging could be used to isolate the failure-inducing schedule difference. Given a capture/replay tool like DEJAVU, the approach presented in this paper is straightforward and easy to implement." (Conclusion)

Get the paper in PDF format (448k, 11 pages).

Abstract

Consider a multi-threaded application that occasionally fails due to non-determinism. Using the DEJAVU capture/replay tool, it is possible to record the thread schedule and replay the application in a deterministic way. By systematically narrowing down the difference between a thread schedule that makes the program pass and another schedule that makes the program fail, the Delta Debugging approach can pinpoint the error location automatically - namely, the location(s) where a thread switch causes the program to fail. In a case study, Delta Debugging isolated the failure-inducing schedule difference from 3.8 billion differences in only 50 tests.

Keywords

debugging aids, diagnostics, testing tools, tracing, concurrent programming

Contents

  1. Introduction
  2. A Simple Example
  3. Capturing and Replaying Thread Schedules
    • Preemptive Thread Switching
    • Replaying Preemptive Thread Switches
    • Replaying Other Thread Switches
    • Replaying Generated Thread Schedules
  4. Narrowing Schedule Differences
    • Identifying Thread Schedules
    • Testing Thread Schedules
    • Identifying Differences
    • Testing Differences
    • Isolating Relevant Differences
  5. Generating Altered Schedules
  6. A Case Study
  7. Related Work
  8. Conclusion and Future Work

Download

See Also...

<webmaster@st.cs.uni-saarland.de> · http://www.st.cs.uni-saarland.de/papers/issta2002/ · Stand: 2017-01-03 21:10