Abstract
Concurrency bugs are often due to inadequate synchronization that fail to prevent specific (undesirable) thread interleavings. Such errors, often referred to as Heisenbugs, are difficult to detect, prevent, and repair. In this paper, we present a new technique to increase program robustness against Heisenbugs. We profile correct executions from provided test suites to infer fine-grained atomicity properties. Additional deadlock-free locking is injected into the program to guarantee these properties hold on production runs. Notably, our technique does not rely on witnessing or analyzing erroneous executions. The end result is a scheme that only permits executions which are guaranteed to preserve the atomicity properties derived from the profile. Evaluation results on large, real-world, open-source programs show that our technique can effectively suppress subtle concurrency bugs, with small runtime overheads (typically less than 15%).
- R. Agarwal, L. Wang, and S. D. Stoller. Detecting Potential Deadlocks with Static Analysis and Runtime Monitoring. In PADTAD'05.Google Scholar
- T. Bergan, O. Anderson, J. Devietti, L. Ceze, D. Grossman. CoreDet: A Compiler and Runtime System for Deterministic Multithreaded Execution. In ASPLOS'10. Google Scholar
Digital Library
- E. Bodden and K. Havelund. Racer: Effective Race Detection Using AspectJ. In ISSTA'08. Google Scholar
Digital Library
- S. Burckhardt, P. Kothari, M. Musuvathi and S. Nagarakatte. A randomized scheduler with probabilistic guarantees of finding bugs. In ASPLOS'10. Google Scholar
Digital Library
- M. D. Bond, K. E. Coons and K. S. McKinley. Pacer: Proportional Detection of Data Races. In PLDI'10. Google Scholar
Digital Library
- R. Jr. Bocchino, S. Heumann, N. Honarmand, S. V. Adve, V. S. Adve, A. Welc and T. Shpeisman, Safe nondeterminism in a deterministic-by-default parallel language, In POPL'11. Google Scholar
Digital Library
- L. Chew and D. Lie, Kivati: fast detection and prevention of atomicity violations, In EuroSys'10. Google Scholar
Digital Library
- F. Chen, T. F. Serbanuta, and G. Rosu. JPredictor: A Predictive Runtime Analysis Tool for Java. In ICSE'08. Google Scholar
Digital Library
- S. Cherem, T. M. Chilimbi, S. Gulwani. Inferring Locks for Atomic Sections. In PLDI'08. Google Scholar
Digital Library
- H. Cui, J. Wu, C. Tsai and J. Yang. Stable Deterministic Multithreading through Schedule Memoization. In OSDI'10. Google Scholar
Digital Library
- D. Cunningham, K. Gudka and S. Eisenbach, Keep off the grass: locking the right path for atomicity, In CC'08/ETAPS'08. Google Scholar
Digital Library
- P. Diniz and M. Rinard, Lock Coarsening: Eliminating Lock Overhead in Automatically Parallelized Object-Based Programs, In Journal of Parallel and Distributed Computing, 49(1):218--244, 1996, Google Scholar
Digital Library
- G. W. Dunlap, D. G. Lucchetti, M. A. Fetterman, and P. M. Chen. Execution Replay of Multiprocessor Virtual Machines. In VEE'08. Google Scholar
Digital Library
- M. Emmi, J. S. Fischer, R. Jhala, and R. Majumdar. Lock allocation, In POPL'07. Google Scholar
Digital Library
- C. Flanagan and S. N Freund. Atomizer: A Dynamic Atomicity Checker for Multithreaded Programs. In POPL'04. Google Scholar
Digital Library
- C. Hammer, J. Dolby, M. Vaziri, and F. Tip. Dynamic Detection of Atomic-Set-Serializability Violations. In ICSE'08. Google Scholar
Digital Library
- P. Joshi, M. Naik, K. Sen, and D. Gay. An Effective Dynamic Analysis for Detecting Generalized Deadlocks. In FSE'10. Google Scholar
Digital Library
- Z. Jin, L. Song, W. Zhang, S. Lu, and S. B. Liblit, Automated Atomicity-Violation Fixing. In PLDI'11. Google Scholar
Digital Library
- S. Lu and S. Park and C. Hu and X. Ma, and W. Jiang and Z. Li and R. Popa, R. and Y. Zhou. MUVI: Automatically Inferring Multi-Variable Access Correlations and Detecting Related Semantic and Concurrency Bugs. In SOSP'07. Google Scholar
Digital Library
- S. Lu, S. Park, E. Seo, and Y. Zhou. Learning from Mistakes: A Comprehensive Study on Real-World Concurrency Bug Characteristics. In ASPLOS'08. Google Scholar
Digital Library
- B. McCloskey, F. Zhou, D. Gay and E. Brewer. Autolocker: Synchronization Inference for Atomic Sections. In POPL'06. Google Scholar
Digital Library
- P. Montesinos, M. Hicks, S. T. King, and J. Torrellas. Capo: A Software-Hardware Interface for Practical Deterministic Multiprocessor Replay. In ASPLOS'09. Google Scholar
Digital Library
- M. Musuvathi and S. Qadeer. Fair Stateless Model Checking. In PLDI'08. Google Scholar
Digital Library
- R. O'Callahan and J.-D. Choi. Hybrid Dynamic Data Race Detection. In PPoPP'03. Google Scholar
Digital Library
- S. Park, S. Lu, and Y. Zhou. CTrigger: Exposing Atomicity Violation Bugs from their Hiding Places. In ASPLOS'09. Google Scholar
Digital Library
- P. Pratikakis, J. S. Foster and M. Hicks. LOCKSMITH: Context-Sensitive Correlation Analysis for Race Detection. In PLDI'06. Google Scholar
Digital Library
- S. Rajamani, G. Ramalingam, V. P. Ranganath, and K. Vaswani, ISOLATOR: dynamically ensuring isolation in concurrent programs, In ASPLOS'09. Google Scholar
Digital Library
- S. Savage, M. Burrows, G. Nelson, P. Sobalvarro, and T. Anderson. Eraser: A Dynamic Data Race Detector for Multithreaded Programs. ACM Trans. Comp. Sys., 1997. Google Scholar
Digital Library
- M. Vaziri, F. Tip and J. Dolby. Associating Synchronization Constraints with Data in an Object-Oriented Language. In POPL'06. Google Scholar
Digital Library
- L. Wang and S. D. Stoller. Accurate and Efficient Runtime Detection of Atomicity Errors in Concurrent Programs. In PPoPP'06. Google Scholar
Digital Library
- D. Weeratunge, X. Zhang and S. Jagannathan, Analyzing multicore dumps to facilitate concurrency bug reproduction. In ASPLOS'10. Google Scholar
Digital Library
- D. Weeratunge, X. Zhang and S. Jagannathan, Suppressing Concurrency Bugs Using Scheduler Shepherding Feb. 04, 2011, TR-11-002 http://www.cs.purdue.edu/research/technical_reports/2011/TR%2011-002.pdfGoogle Scholar
- J. Wu, H. Cui and J. Yang. Bypassing Races in Live Applications with Execution Filters. In OSDI'10. Google Scholar
Digital Library
- M. Xu, R. Bodik, and M. D. Hill. A Serializability Violation Detector for Shared-Memory Server Programs. In PLDI'05. Google Scholar
Digital Library
- J. Yu and S. Narayanasamy. A Case for an Interleaving Constrained Shared-Memory Multi-Processor. In ISCA'09. Google Scholar
Digital Library
Index Terms
Accentuating the positive: atomicity inference and enforcement using correct executions
Recommendations
Accentuating the positive: atomicity inference and enforcement using correct executions
OOPSLA '11: Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applicationsConcurrency bugs are often due to inadequate synchronization that fail to prevent specific (undesirable) thread interleavings. Such errors, often referred to as Heisenbugs, are difficult to detect, prevent, and repair. In this paper, we present a new ...
Altruistic locking
Long-lived transactions (LLTs) hold on to database resources for relatively long periods of time, significantly delaying the completion of shorter and more common transactions. To alleviate this problem we propose an extension to two-phase locking, ...
Scrider: Using Single Critical Sections to Avoid Deadlocks
IMCCC '14: Proceedings of the 2014 Fourth International Conference on Instrumentation and Measurement, Computer, Communication and ControlWe propose a method, called Scrider, to avoid dead-locks before they manifest themselves. When running it togeth-er with a multithreaded program, Scrider interferes in thread scheduling to ensure that at any time there is only one thread in the critical ...







Comments