Producing scheduling that causes concurrent programs to fail

  • Authors:
  • Yosi Ben-Asher;Yaniv Eytani;Eitan Farchi;Shmuel Ur

  • Affiliations:
  • University of Haifa;University of Haifa;IBM Haifa Research Laboratory;IBM Haifa Research Laboratory

  • Venue:
  • Proceedings of the 2006 workshop on Parallel and distributed systems: testing and debugging
  • Year:
  • 2006

Quantified Score

Hi-index 0.01

Visualization

Abstract

A noise maker is a tool that seeds a concurrent program with conditional synchronization primitives (such as yield()) for the purpose of increasing the likelihood that a bug manifest itself. This work explores the theory and practice of choosing where in the program to induce such thread switches at runtime. We introduce a novel fault model that classifies locations as 驴good驴, 驴neutral驴, or 驴bad,驴 based on the effect of a thread switch at the location. We validate our approach by experimenting with a set of programs taken from publicly available multi-threaded benchmark. Our empirical evidence demonstrates that real-life behavior is similar to that derived from the model.