Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1390841.1390848acmconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
research-article

AtomRace: data race and atomicity violation detector and healer

Published: 20 July 2008 Publication History

Abstract

The paper proposes a novel algorithm called AtomRace for a dynamic detection of data races. Data races are detected as a special case of atomicity violations on atomic sections specially defined to span just particular read/write instructions and the transfer of control to and from them. A key ingredient allowing AtomRace to efficiently detect races on such short atomic sections is a use of techniques for a careful injection of noise into the scheduling of the monitored programs. The approach is very simple, fully automated, avoids false alarms, and allows for a lower overhead and better scalability than many other existing dynamic data race detection algorithms. We illustrate these facts by a set of experiments with a prototype implementation of AtomRace. Further, AtomRace can also be applied to detect atomicity violations on more general atomic sections than those used for the data race detection. They can be defined by the user or obtained by some static analysis.

References

[1]
C. Artho, K. Havelund, and A. Biere. High-level data races, 2003.
[2]
N. Ayewah, W. Pugh, J. D. Morgenthaler, J. Penix, and Y. Zhou. Using findbugs on production software. In OOPSLA '07: Companion to the 22nd ACM SIGPLAN conference on Object oriented programming systems and applications companion, pages 805--806, New York, NY, USA, 2007. ACM.
[3]
J.-D. Choi, K. Lee, A. Loginov, R. O'Callahan, V. Sarkar, and M. Sridharan. Efficient and precise datarace detection for multithreaded object-oriented programs. In PLDI '02: Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation, pages 258--269, New York, NY, USA, 2002. ACM Press.
[4]
O. Edelstein, E. Farchi, E. Goldin, Y. Nir, G. Ratsaby, and S. Ur. Framework for testing multi-threaded java programs. Concurrency and Computation: Practice and Experience, 15(3--5):485--499, 2003.
[5]
T. Elmas, S. Qadeer, and S. Tasiran. Precise data-race detection and efficient model checking using locksets. Technical Report MSR-TR-2005-118, Microsoft Research, March 2006.
[6]
T. Elmas, S. Qadeer, and S. Tasiran. Goldilocks: a race and transaction-aware java runtime. In PLDI '07: Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation, pages 245--255, New York, NY, USA, 2007. ACM Press.
[7]
D. Engler and K. Ashcraft. Racerx: effective, static detection of race conditions and deadlocks. SIGOPS Oper. Syst. Rev., 37(5):237--252, 2003.
[8]
C. Flanagan and S. N. Freund. Type-based race detection for java. In PLDI '00: Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation, pages 219--232, New York, NY, USA, 2000. ACM Press.
[9]
C. Flanagan and S. N. Freund. Atomizer: a dynamic atomicity checker for multithreaded programs. SIGPLAN Not., 39(1):256--267, 2004.
[10]
T. Henzinger, R. Jhala, R. Majumdar, and S. Qadeer. Thread-modular abstraction refinement. In Proceedings of the 15th International Conference on Computer-Aided Verification (CAV), pages 262--274. Lecture Notes in Computer Science 2725, Springer-Verlag, January 2003.
[11]
D. H. Hovemeyer. Simple and effective static analysis to find bugs. PhD thesis, College Park, MD, USA, 2005. Director-William W. Pugh.
[12]
V. Kahlon, Y. Yang, S. Sankaranarayanan, and A. Gupta. Fast and accurate static data-race detection for concurrent programs. In CAV, pages 226--239, 2007.
[13]
B. Křena, Z. Letko, R. Tzoref, S. Ur, and T. Vojnar. Healing data races on-the-fly. In PADTAD '07: Proceedings of the 2007 ACM workshop on Parallel and distributed systems: testing and debugging, pages 54--64, New York, NY, USA, 2007. ACM.
[14]
L. Lamport. Time, clocks, and the ordering of events in a distributed system. Commun. ACM, 21(7):558--565, 1978.
[15]
Z. Letko. Dynamic data race detection and self-healing in java programs. Master's thesis, Faculty of Information Technology, Brno University of Technology, 2008.
[16]
S. Lu, J. Tucek, F. Qin, and Y. Zhou. Avio: detecting atomicity violations via access interleaving invariants. In ASPLOS-XII: Proceedings of the 12th international conference on Architectural support for programming languages and operating systems, pages 37--48, New York, NY, USA, 2006. ACM Press.
[17]
F. Mattern. Virtual time and global states of distributed systems. In Parallel and Distributed Algorithms: proceedings of the International Workshop on Parallel and Distributed Algorithms. 1988.
[18]
R. Nagpaly, K. Pattabiramanz, D. Kirovski, and B. Zorn. Position paper - tolerace: Tolerating and detecting races. In STMCS: Second Workshop on Software Tools for Multi-Core Systems (STMCS), 2007.
[19]
M. Naik, A. Aiken, and J. Whaley. Effective static race detection for java. SIGPLAN Not., 41(6):308--319, 2006.
[20]
Y. Nir-Buchbinder and S. Ur. Contest listeners: a concurrency-oriented infrastructure for java test and heal tools. In SOQUA '07: Fourth international workshop on Software quality assurance, pages 9--16, New York, NY, USA, 2007. ACM.
[21]
R. O'Callahan and J.-D. Choi. Hybrid dynamic data race detection. In PPoPP '03: Proceedings of the ninth ACM SIGPLAN symposium on Principles and practice of parallel programming, pages 167--178, New York, NY, USA, 2003. ACM Press.
[22]
T. Peierls, B. Goetz, J. Bloch, J. Bowbeer, D. Lea, and D. Holmes. Java Concurrency in Practice. Addison-Wesley Professional, 2005.
[23]
P. Pratikakis, J. S. Foster, and M. Hicks. Locksmith: context-sensitive correlation analysis for race detection. SIGPLAN Not., 41(6):320--331, 2006.
[24]
A. Sasturkar, R. Agarwal, L. Wang, and S. D. Stoller. Automated type-based analysis of data races and atomicity. In PPoPP '05: Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming, pages 83--94, New York, NY, USA, 2005. ACM.
[25]
S. Savage, M. Burrows, G. Nelson, P. Sobalvarro, and T. Anderson. Eraser: a dynamic data race detector for multi-threaded programs. In SOSP '97: Proceedings of the sixteenth ACM symposium on Operating systems principles, pages 27--37, New York, NY, USA, 1997. ACM Press.
[26]
J. Soriano, M. Jimenez, J. M. Cantera, and J. J. Hierro. Delivering mobile enterprise services on morfeo's mc open source platform. In MDM '06: Proceedings of the 7th International Conference on Mobile Data Management, page 139, Washington, DC, USA, 2006. IEEE Computer Society.
[27]
R. Tzoref, S. Ur, and E. Yom-Tov. Instrumenting where it hurts: an automatic concurrent debugging technique. In ISSTA '07: Proceedings of the 2007 international symposium on Software testing and analysis, pages 27--38, New York, NY, USA, 2007. ACM.
[28]
M. Vaziri, F. Tip, and J. Dolby. Associating synchronization constraints with data in an object-oriented language. In POPL '06: Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 334--345, New York, NY, USA, 2006. ACM Press.
[29]
C. von Praun and T. Gross. Static detection of atomicity violations in object-oriented programs, 2003.
[30]
C. von Praun and T. R. Gross. Object race detection. In OOPSLA '01: Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, pages 70--82, New York, NY, USA, 2001. ACM Press.
[31]
M. Xu, R. Bodík, and M. D. Hill. A serializability violation detector for shared-memory server programs. SIGPLAN Not., 40(6):1--14, 2005.
[32]
Y. Yu, T. Rodeheffer, and W. Chen. Racetrack: efficient detection of data race conditions via adaptive tracking. SIGOPS Oper. Syst. Rev., 39(5):221--234, 2005.

Cited By

View all
  • (2018)Advances in the ANaConDA framework for dynamic analysis and testing of concurrent C/C++ programsProceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3213846.3229505(356-359)Online publication date: 12-Jul-2018
  • (2018)DigHRThe Journal of Supercomputing10.1007/s11227-018-2307-874:6(2684-2704)Online publication date: 1-Jun-2018
  • (2015)ConcBugAssist: constraint solving for diagnosis and repair of concurrency bugsProceedings of the 2015 International Symposium on Software Testing and Analysis10.1145/2771783.2771798(165-176)Online publication date: 13-Jul-2015
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PADTAD '08: Proceedings of the 6th workshop on Parallel and distributed systems: testing, analysis, and debugging
July 2008
78 pages
ISBN:9781605580524
DOI:10.1145/1390841
  • General Chair:
  • Shmuel Ur
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 20 July 2008

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article

Conference

ISSTA '08
Sponsor:

Upcoming Conference

ISSTA '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)0
Reflects downloads up to 15 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2018)Advances in the ANaConDA framework for dynamic analysis and testing of concurrent C/C++ programsProceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3213846.3229505(356-359)Online publication date: 12-Jul-2018
  • (2018)DigHRThe Journal of Supercomputing10.1007/s11227-018-2307-874:6(2684-2704)Online publication date: 1-Jun-2018
  • (2015)ConcBugAssist: constraint solving for diagnosis and repair of concurrency bugsProceedings of the 2015 International Symposium on Software Testing and Analysis10.1145/2771783.2771798(165-176)Online publication date: 13-Jul-2015
  • (2015)JaConTeBeProceedings of the 30th IEEE/ACM International Conference on Automated Software Engineering10.1109/ASE.2015.87(178-189)Online publication date: 9-Nov-2015
  • (2014)Runtime prevention of concurrency related type-state violations in multithreaded applicationsProceedings of the 2014 International Symposium on Software Testing and Analysis10.1145/2610384.2610405(1-12)Online publication date: 21-Jul-2014
  • (2013)Automatically Repairing Concurrency Bugs with ARCProceedings of the International Conference on Multicore Software Engineering, Performance, and Tools - Volume 806310.1007/978-3-642-39955-8_7(73-84)Online publication date: 19-Aug-2013
  • (2012)Automated concurrency-bug fixingProceedings of the 10th USENIX conference on Operating Systems Design and Implementation10.5555/2387880.2387902(221-236)Online publication date: 8-Oct-2012
  • (2012)Noise-based testing and analysis of multi-threaded C/C++ programs on the binary levelProceedings of the 2012 Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging10.1145/2338967.2336813(36-46)Online publication date: 16-Jul-2012
  • (2011)Automated atomicity-violation fixingProceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/1993498.1993544(389-400)Online publication date: 4-Jun-2011
  • (2011)Automated atomicity-violation fixingACM SIGPLAN Notices10.1145/1993316.199354446:6(389-400)Online publication date: 4-Jun-2011
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media