CTrigger

作者: Soyeon Park , Shan Lu , Yuanyuan Zhou

DOI: 10.1145/1508244.1508249

关键词:

摘要: Multicore hardware is making concurrent programs pervasive. Unfortunately, are prone to bugs. Among different types of concurrency bugs, atomicity violation bugs common and important. Existing techniques detect suffer from one limitation: requiring manifest during monitored runs, which an open problem in program testing.This paper makes two contributions. First, it studies the interleaving characteristics practice testing (i.e., running a over over) understand why hard expose. Second, proposes CTrigger effectively efficiently expose large programs. focuses on special type interleavings unserializable interleavings) that inherently correlated uses trace analysis systematically identify (likely) feasible with low occurrence-probability. then minimum execution perturbation exercise low-probability difficult-to-catch violation.We evaluate real-world four sever/desktop applications (Apache, MySQL, Mozilla, PBZIP2) three SPLASH2 8-core machines. exposes tested within 1--235 seconds, orders magnitude faster than stress testing. Without CTrigger, some these do not even after 7 full days In addition, without deterministic replay support, once bug exposed, can help programmers reliably reproduce for diagnosis. Our reproduced by mostly 5 300 60000 times

参考文章(29)
Koushik Sen, Gul Agha, Automated systematic testing of open distributed programs fundamental approaches to software engineering. pp. 339- 356 ,(2006) , 10.1007/11693017_25
Shaz Qadeer, Iulian Neamtiu, Thomas Ball, Piramanayagam Arumuga Nainar, Madanlal Musuvathi, Gerard Basler, Finding and reproducing Heisenbugs in concurrent programs operating systems design and implementation. pp. 267- 280 ,(2008) , 10.5555/1855741.1855760
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
Arkady Bron, Eitan Farchi, Yonit Magid, Yarden Nir, Shmuel Ur, Applications of synchronization coverage Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming - PPoPP '05. pp. 206- 212 ,(2005) , 10.1145/1065944.1065972
O. Edelstein, E. Farchi, Y. Nir, G. Ratsaby, S. Ur, Multithreaded java program test generation Ibm Systems Journal. ,vol. 41, pp. 111- 125 ,(2002) , 10.1147/SJ.411.0111
Boris Beizer, Software testing techniques (2nd ed.) Van Nostrand Reinhold Co.. ,(1990)
R.N. Taylor, D.L. Levine, C.D. Kelly, Structural testing of concurrent programs IEEE Transactions on Software Engineering. ,vol. 18, pp. 206- 215 ,(1992) , 10.1109/32.126769
Amie L. Souter, Lori L. Pollock, Cheer-Sun D. Yang, All-du-path coverage for parallel programs international symposium on software testing and analysis. ,vol. 23, pp. 153- 162 ,(1998) , 10.1145/271771.271804
Cormac Flanagan, Stephen N Freund, Atomizer: a dynamic atomicity checker for multithreaded programs symposium on principles of programming languages. ,vol. 39, pp. 256- 267 ,(2004) , 10.1145/964001.964023
Robert H. B. Netzer, Barton P. Miller, Improving the accuracy of data race detection acm sigplan symposium on principles and practice of parallel programming. ,vol. 26, pp. 133- 144 ,(1991) , 10.1145/109625.109640