skip to main content
10.1145/2737924.2737975acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article

Stateless model checking concurrent programs with maximal causality reduction

Published:03 June 2015Publication History

ABSTRACT

We present maximal causality reduction (MCR), a new technique for stateless model checking. MCR systematically explores the state-space of concurrent programs with a provably minimal number of executions. Each execution corresponds to a distinct maximal causal model extracted from a given execution trace, which captures the largest possible set of causally equivalent executions. Moreover, MCR is embarrassingly parallel by shifting the runtime exploration cost to offline analysis. We have designed and implemented MCR using a constraint-based approach and compared with iterative context bounding (ICB) and dynamic partial order reduction (DPOR) on both benchmarks and real-world programs. MCR reduces the number of executions explored by ICB and ICB+DPOR by orders of magnitude, and significantly improves the scalability, efficiency, and effectiveness of the state-of-the-art for both state-space exploration and bug finding. In our experiments, MCR has also revealed several new data races and null pointer dereference errors in frequently studied real-world programs.

References

  1. A. Mazurkiewicz. Trace theory. Advances in Petri Nets, 1987.Google ScholarGoogle ScholarCross RefCross Ref
  2. ASM bytecode analysis framework. http://asm.ow2.org/.Google ScholarGoogle Scholar
  3. P. Abdulla, S. Aronis, B. Jonsson, and K. Sagonas. Optimal dynamic partial order reduction. In POPL, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. S. Burckhardt, P. Kothari, M. Musuvathi, and S. Nagarakatte. A randomized scheduler with probabilistic guarantees of finding bugs. In ASPLOS, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. E. M. Clarke, O. Grumberg, M. Minea, and D. Peled. State space reduction using partial order techniques. STTT, 1998.Google ScholarGoogle Scholar
  6. K. E. Coons, M. Musuvathi, and K. S. McKinley. Bounded partialorder reduction. In OOPSLA, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. L. De Moura and N. Bjørner. Z3: an efficient SMT solver. In TACAS, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. B. Dutertre and L. D. Moura. The Yices SMT solver. Technical report, 2006.Google ScholarGoogle Scholar
  9. A. Farzan, P. Madhusudan, N. Razavi, and F. Sorrentino. Predicting null-pointer dereferences in concurrent programs. In FSE, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. C. Flanagan and P. Godefroid. Dynamic partial-order reduction for model checking software. In POPL, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. P. Godefroid. Partial-Order Methods for the Verification of Concurrent Systems: An Approach to the State-Explosion Problem. PhD thesis, University of Liôlge., 1996. ISBN 3540607617.Google ScholarGoogle ScholarCross RefCross Ref
  12. P. Godefroid. Model checking for programming languages using verisoft. In POPL, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. P. Godefroid. Software model checking: The verisoft approach. Form. Methods Syst. Des., 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. J. Huang, P. Liu, and C. Zhang. LEAP: Lightweight deterministic multi-processor replay of concurrent Java programs. In FSE, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. J. Huang, C. Zhang, and J. Dolby. Clap: Recording local executions to reproduce concurrency failures. In PLDI, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. J. Huang, P. O. Meredith, and G. Rosu. Maximal sound predictive race detection with control flow abstraction. In PLDI, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. V. Jagannath, Q. Luo, and D. Marinov. Change-aware preemption prioritization. In ISSTA, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. V. Kahlon, C. Wang, and A. Gupta. Monotonic partial order reduction: An optimal symbolic partial order reduction technique. In CAV, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. M. Kusano and C. Wang. Assertion guided abstraction: a cooperative optimization for dynamic partial order reduction. In ASE, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. L. Lamport. Time, clocks, and the ordering of events in a distributed system. CACM, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. S. Lu, W. Jiang, and Y. Zhou. A study of interleaving coverage criteria. In ESEC-FSE, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. M. Musuvathi and S. Qadeer. Partial-order reduction for contextbounded state exploration. In Tech. Rep. MSR-TR-2007-12, 2007.Google ScholarGoogle Scholar
  23. M. Musuvathi and S. Qadeer. Iterative context bounding for systematic testing of multithreaded programs. In PLDI, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. M. Musuvathi and S. Qadeer. Fair stateless model checking. In PLDI, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. M. Musuvathi, S. Qadeer, T. Ball, G. Basler, P. A. Nainar, and I. Neamtiu. Finding and reproducing heisenbugs in concurrent programs. In OSDI, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. S. Nagarakatte, S. Burckhardt, M. M. Martin, and M. Musuvathi. Multicore acceleration of priority-based schedulers for concurrency bug detection. In PLDI, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. H. Patil, C. Pereira, M. Stallcup, G. Lueck, and J. Cownie. Pinplay: a framework for deterministic replay and reproducible analysis of parallel programs. In CGO, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. M. Said, C. Wang, Z. Yang, and K. Sakallah. Generating data race witnesses by an SMT-based analysis. In NFM, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. K. Sen. Race directed random testing of concurrent programs. In PLDI, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. T. F. Serbanuta, F. Chen, and G. Rosu. Maximal causal models for sequentially consistent systems. In RV, 2012.Google ScholarGoogle Scholar
  31. J. van den Hooff. Fast bug finding in lock-free data structures with cb-dpor. In Master thesis, Massachusetts Institute of Technology, 2014.Google ScholarGoogle Scholar
  32. C. Wang, R. Limaye, M. K. Ganai, and A. Gupta. Trace-based symbolic analysis for atomicity violations. In TACAS, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. C. Wang, M. Said, and A. Gupta. Coverage guided systematic concurrency testing. In ICSE, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. J. Yu, S. Narayanasamy, C. Pereira, and G. Pokam. Maple: A coverage-driven testing tool for multithreaded programs. In OOPSLA, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Stateless model checking concurrent programs with maximal causality reduction

            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
              PLDI '15: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation
              June 2015
              630 pages
              ISBN:9781450334686
              DOI:10.1145/2737924
              • cover image ACM SIGPLAN Notices
                ACM SIGPLAN Notices  Volume 50, Issue 6
                PLDI '15
                June 2015
                630 pages
                ISSN:0362-1340
                EISSN:1558-1160
                DOI:10.1145/2813885
                • Editor:
                • Andy Gill
                Issue’s Table of Contents

              Copyright © 2015 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: 3 June 2015

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • research-article

              Acceptance Rates

              Overall Acceptance Rate406of2,067submissions,20%

              Upcoming Conference

              PLDI '24

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader