skip to main content
10.1145/1882291.1882300acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

PENELOPE: weaving threads to expose atomicity violations

Published:07 November 2010Publication History

ABSTRACT

Testing concurrent programs is challenged by the interleaving explosion problem--- the problem of exploring the large number of interleavings a program exhibits, even under a single test input. Rather than try all interleavings, we propose to test wisely: to exercise only those schedules that lead to interleavings that are typical error patterns. In particular, in this paper we select schedules that exercise patterns of interaction that correspond to atomicity violations. Given an execution of a program under a test harness, our technique is to algorithmically mine from the execution a small set of alternate schedules that cause atomicity violations. The program is then re-executed under these predicted atomicity-violating schedules, and verified by the test harness. The salient feature of our tool is the efficient algorithmic prediction and synthesis of alternate schedules that cover all possible atomicity violations at program locations. We implement the tool PENELOPE that realizes this testing framework and show that the monitoring, prediction, and rescheduling (with precise repro) are efficient and effective in finding bugs related to atomicity violations.

References

  1. http://http://www.javagrande.org/.Google ScholarGoogle Scholar
  2. http://jakarta.apache.org/bcel/.Google ScholarGoogle Scholar
  3. F. Chen, T.F. Serbanuta, and G. Rosu. jpredictor: a predictive runtime analysis tool for java. In ICSE, pages 221--230, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. A. Farzan and P. Madhusudan. Monitoring atomicity in concurrent programs. In CAV, pages 52--65, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. A. Farzan, P. Madhusudan, and F. Sorrentino. Meta-analysis for atomicity violations under nested locking. In CAV, pages 248--262, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. C. Flanagan and S. N Freund. Atomizer: a dynamic atomicity checker for multithreaded programs. In POPL, pages 256--267, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. C. Flanagan, S. N. Freund, and J. Yi. Velodrome: a sound and complete dynamic atomicity checker for multithreaded programs. In PLDI, pages 293--303, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. C. Flanagan and S. Qadeer. A type and effect system for atomicity. In PLDI, pages 338--349, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. J. Hatcliff, Robby, and M. Dwyer. Verifying atomicity specifications for concurrent object-oriented software using model checking. In VMCAI, pages 175--190, 2004.Google ScholarGoogle ScholarCross RefCross Ref
  10. V. Kahlon, F. Ivancic, and A. Gupta. Reasoning about threads communicating via locks. In CAV, pages 505--518, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. R. J. Lipton. Reduction: a method of proving properties of parallel programs. Commun. ACM, 18(12):717--721, 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. S. Lu, S. Park, E. Seo, and Y. Zhou. Learning from mistakes: a comprehensive study on real world concurrency bug characteristics. In ASPLOS, pages 329--339, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. M. Musuvathi and S. Qadeer. Iterative context bounding for systematic testing of multithreaded programs. In PLDI, pages 446--455. ACM, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. C. Papadimitriou. The theory of database concurrency control. Computer Science Press., 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. C-S Park and K. Sen. Randomized active atomicity violation detection in concurrent programs. In SIGSOFT '08/FSE-16, pages 135--145, New York, NY, USA, 2008. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. S. Park, S. Lu, and Y. Zhou. Ctrigger: exposing atomicity violation bugs from their hiding places. In ASPLOS, pages 25--36, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. S., J. Tucek, F. Qin, and Y. Zhou. Avio: detecting atomicity violations via access interleaving invariants. In ASPLOS, pages 37--48, 2006.Google ScholarGoogle Scholar
  18. C. von Praun and T. R. Gross. Object race detection. SIGPLAN Not., 36(11):70--82, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. C. Wang, R. Limaye, M. Ganai, and A. Gupta. Trace-based symbolic analysis for atomicity violations. In TACAS, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. L. Wang and S. D. Stoller. Accurate and efficient runtime detection of atomicity errors in concurrent programs. In PPoPP, pages 137--146, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. L. Wang and S. D. Stoller. Runtime analysis of atomicity for multi-threaded programs. IEEE Transactions on Software Engineering, 32:93--110, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. J. Yi, C. Sadowski, and C. Flanagan. Sidetrack: generalizing dynamic atomicity analysis. In PADTAD, pages 1--10, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in
  • Published in

    cover image ACM Conferences
    FSE '10: Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
    November 2010
    302 pages
    ISBN:9781605587912
    DOI:10.1145/1882291

    Copyright © 2010 ACM

    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]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 7 November 2010

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • research-article

    Acceptance Rates

    Overall Acceptance Rate17of128submissions,13%

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader