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

Practical verification of high-level dataraces in transactional memory programs

Published: 17 July 2011 Publication History

Abstract

In this paper we present MoTh, a tool that uses static analysis to enable the automatic verification of concurrency anomalies in Transactional Memory Java programs. Currently MoTh detects high-level dataraces and stale-value errors, but it is extendable by plugging-in sensors, each sensor implementing an anomaly detecting algorithm. We validate and benchmark MoTh by applying it to a set of well known concurrent buggy programs and by close comparison of the results with other similar tools. The results achieved so far are very promising, yielding good accuracy while triggering only a very limited number of false warnings.

References

[1]
Cyrille Artho, Klaus Havelund, and Armin Biere. High-level data races. Software Testing, Verification and Reliability, 13(4):207--227, December 2003.
[2]
Cyrille Artho, Klaus Havelund, and Armin Biere. Using block-local atomicity to detect stale-value concurrency errors. In Farn Wang, editor, ATVA, volume 3299 of Lecture Notes in Computer Science, pages 150--164. Springer, 2004.
[3]
Nels E. Beckman, Kevin Bierhoff, and Jonathan Aldrich. Verifying correct usage of atomic blocks and typestate. SIGPLAN Not., 43(10):227--244, 2008.
[4]
Colin Blundell, E. Christopher Lewis, and Milo M. K. Martin. Deconstructing transactional semantics: The subtleties of atomicity. In Fourth Annual Workshop on Duplicating, Deconstructing, and Debunking, June 2005.
[5]
Michael Burrows and K. Rustan M. Leino. Finding stale-value errors in concurrent programs. Concurrency and Computation: Practice and Experience, 16(12):1161--1172, October 2004.
[6]
Tayfun Elmas and S Qadeer. Goldilocks: a race and transaction-aware java runtime. ACM SIGPLAN Notices, pages 245--255, 2007.
[7]
Cormac Flanagan and Stephen N Freund. Atomizer: a dynamic atomicity checker for multithreaded programs. In POPL '04: Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 256--267, New York, NY, USA, 2004. ACM.
[8]
Cormac Flanagan, K. Rustan M. Leino, Mark Lillibridge, Greg Nelson, James B. Saxe, and Raymie Stata. Extended static checking for Java. ACM SIGPLAN Notices, 37(5):234, May 2002.
[9]
Cormac Flanagan and Shaz Qadeer. Types for atomicity. In TLDI '03: Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementation, pages 1--12, New York, NY, USA, 2003. ACM.
[10]
Maurice Herlihy, Victor Luchangco, Mark Moir, and III William N. Scherer. Software transactional memory for dynamic-sized data structures. In PODC '03: Proceedings of the twenty-second annual symposium on Principles of distributed computing, pages 92--101, New York, NY, USA, 2003. ACM.
[11]
IBM's Concurrency Testing Repository.
[12]
Milo Martin, Colin Blundell, and E. Lewis. Subtleties of transactional memory atomicity semantics. IEEE Computer Architecture Letters, 5(2), 2006.
[13]
Laurie Hendren Vijay Sundaresan Patrick Lam Etienne Gagnon Raja Vallée-Rai and Phong Co. Soot - a java optimization framework. In Proceedings of CASCON 1999, pages 125--135, 1999.
[14]
Nir Shavit and Dan Touitou. Software transactional memory. In PODC '95: Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing, pages 204--213, New York, NY, USA, 1995. ACM.
[15]
Bruno Teixeira, João Lourenço, Eitan Farchi, Ricardo Dias, and Diogo Sousa. Detection of transactional memory anomalies using static analysis. In Proceedings of the 8th Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging, PADTAD '10, pages 26--36, New York, NY, USA, 2010. ACM.
[16]
Mandana Vaziri, Frank Tip, and Julian Dolby. Associating synchronization constraints with data in an object-oriented language. ACM SIGPLAN Notices, 41(1):334--345, January 2006.
[17]
Christoph von Praun and Thomas R. Gross. Static detection of atomicity violations in object-oriented programs. In Journal of Object Technology, page 2004, 2003.
[18]
L Wang and S Stoller. Run-Time Analysis for Atomicity. Electronic Notes in Theoretical Computer Science, 89(2):191--209, October 2003.

Cited By

View all
  • (2013)Static Application-Level Race Detection in STM Haskell using ContractsElectronic Proceedings in Theoretical Computer Science10.4204/EPTCS.137.10137(115-134)Online publication date: 8-Dec-2013
  • (2012)Using program closures to make an application programming interface (API) implementation thread safeProceedings of the 2012 Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging10.1145/2338967.2336810(18-24)Online publication date: 16-Jul-2012
  • (2011)Program Conversion for Detecting Data Races in Concurrent Interrupt HandlersSoftware Engineering, Business Continuity, and Education10.1007/978-3-642-27207-3_45(407-415)Online publication date: 2011

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PADTAD '11: Proceedings of the Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging
July 2011
66 pages
ISBN:9781450308090
DOI:10.1145/2002962
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

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 July 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. concurrency
  2. software transactional memory
  3. static analysis
  4. testing
  5. verification

Qualifiers

  • Research-article

Funding Sources

Conference

ISSTA '11
Sponsor:

Upcoming Conference

ISSTA '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)2
Reflects downloads up to 13 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2013)Static Application-Level Race Detection in STM Haskell using ContractsElectronic Proceedings in Theoretical Computer Science10.4204/EPTCS.137.10137(115-134)Online publication date: 8-Dec-2013
  • (2012)Using program closures to make an application programming interface (API) implementation thread safeProceedings of the 2012 Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging10.1145/2338967.2336810(18-24)Online publication date: 16-Jul-2012
  • (2011)Program Conversion for Detecting Data Races in Concurrent Interrupt HandlersSoftware Engineering, Business Continuity, and Education10.1007/978-3-642-27207-3_45(407-415)Online publication date: 2011

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