A Concurrency Testing Tool and Its Plug-Ins for Dynamic Analysis and Runtime Healing

This paper presents a tool for concurrency testing (abbreviated as ConTest) and some of its extensions. The extensions (called plug-ins in this paper) are implemented through the listener architecture of ConTest. Two plug-ins for runtime detection of common concurrent bugs are presented--the first (Eraser+) is able to detect data races while the second (AtomRace) is able to detect not only data races but also more general bugs caused by violation of atomicity presumptions. A third plug-in presented in this paper is designed to hide bugs that made it into the field so that when problems are detected they can be circumvented. Several experiments demonstrate the capabilities of these plug-ins.

[1]  Shmuel Ur,et al.  Deadlocks: From Exhibiting to Healing , 2008, RV.

[2]  Tomás Vojnar,et al.  AtomRace: data race and atomicity violation detector and healer , 2008, PADTAD '08.

[3]  Jong-Deok Choi,et al.  Efficient and precise datarace detection for multithreaded object-oriented programs , 2002, PLDI '02.

[4]  Yuanyuan Zhou,et al.  AVIO: Detecting Atomicity Violations via Access-Interleaving Invariants , 2007, IEEE Micro.

[5]  Stephen N. Freund,et al.  Atomizer: A Dynamic Atomicity Checker for Multithreaded Programs (Summary) , 2004, IPDPS.

[6]  Michael Burrows,et al.  Eraser: a dynamic data race detector for multi-threaded programs , 1997, TOCS.

[7]  Tomás Vojnar,et al.  Healing data races on-the-fly , 2007, PADTAD '07.

[8]  Eitan Farchi,et al.  Multithreaded Java program test generation , 2002, IBM Syst. J..

[9]  Jong-Deok Choi,et al.  Hybrid dynamic data race detection , 2003, PPoPP '03.

[10]  Serdar Tasiran,et al.  Goldilocks: a race and transaction-aware java runtime , 2007, PLDI '07.

[11]  J. David Morgenthaler,et al.  Using FindBugs on production software , 2007, OOPSLA '07.

[12]  Michael Burrows,et al.  Eraser: a dynamic data race detector for multithreaded programs , 1997, TOCS.

[13]  Shmuel Ur,et al.  ConTest listeners: a concurrency-oriented infrastructure for Java test and heal tools , 2007, SOQUA '07.

[14]  Serdar Tasiran,et al.  A classification of concurrency bugs in java benchmarks by developer intent , 2006, PADTAD '06.

[15]  José Manuel Cantera,et al.  Delivering Mobile Enterprise Services on Morfeo’s MC Open Source Platform , 2006, 7th International Conference on Mobile Data Management (MDM'06).