Healing data races on-the-fly

作者: Bohuslav Krena , Zdenek Letko , Rachel Tzoref , Shmuel Ur , Tomáš Vojnar

DOI: 10.1145/1273647.1273658

关键词:

摘要: Testing of concurrent software is extremely difficult. Despite all the progress in testing and verification technology, bugs, most common which are deadlocks races, make it to field. This paper describes a set techniques, implemented tool called ConTest, allowing programs self-heal at run-time. Concurrent bugs have very desirable property for healing that some interleaving produce correct results while others manifest. Healing concurrency problems about limiting, or changing probability interleaving, such will be seen less. When programs, if deadlock does not result from limiting we sure healed program could been original therefore no new functional bug has introduced. In this initial work deals with different types data suggest three mechanisms: (1) by introducing sleep yield statements thread priorities, (2) removing using synchronisation commands like locking unlocking certain mutexes waits notifies, (3) "bad interleaving" replacing value variables one "should" taken. We also classify races according relevant strategies apply.

参考文章(37)
Joseph Bowbeer, Doug Lea, Tim Peierls, Brian Goetz, Joshua Bloch, David Holmes, Java Concurrency in Practice ,(2006)
E. Pozniansky, A. Schuster, Efficient on-the-fly data race detection in multithreaded C++ programs international parallel and distributed processing symposium. pp. 287- ,(2003) , 10.1109/IPDPS.2003.1213513
Cyrille Artho, Klaus Havelund, Armin Biere, Using Block-Local Atomicity to Detect Stale-Value Concurrency Errors automated technology for verification and analysis. ,vol. 3299, pp. 150- 164 ,(2004) , 10.1007/978-3-540-30476-0_16
Thomas Ball, Sriram K. Rajamani, The SLAM Toolkit computer aided verification. pp. 260- 264 ,(2001) , 10.1007/3-540-44585-4_25
Ashis Tarafdar, Vijay K. Garg, Software Fault Tolerance of Concurrent Programs Using Controlled Re-execution international symposium on distributed computing. pp. 210- 224 ,(1999) , 10.1007/3-540-48169-9_15
Barton P Miller, Robert Netzer, Detecting Data Races in Parallel Program Executions University of Wisconsin-Madison Department of Computer Sciences. ,(1989)
Tayfun Elmas, Shaz Qadeer, Serdar Tasiran, Goldilocks: Efficiently Computing the Happens-Before Relation Using Locksets Lecture Notes in Computer Science. pp. 193- 208 ,(2006) , 10.1007/11940197_13
Thomas A. Henzinger, Ranjit Jhala, Rupak Majumdar, Grégoire Sutre, Software verification with BLAST international workshop on model checking software. pp. 235- 239 ,(2003) , 10.1007/3-540-44829-2_17
Cyrille Artho, Klaus Havelund, Armin Biere, High-Level Data Races Software Testing, Verification & Reliability. ,vol. 13, pp. 207- 227 ,(2003) , 10.1002/STVR.281
Stefan Savage, Michael Burrows, Greg Nelson, Patrick Sobalvarro, Thomas Anderson, Eraser: a dynamic data race detector for multithreaded programs ACM Transactions on Computer Systems. ,vol. 15, pp. 391- 411 ,(1997) , 10.1145/265924.265927