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

Cited By

View all
  • (2024)Parsimonious Optimal Dynamic Partial Order ReductionComputer Aided Verification10.1007/978-3-031-65630-9_2(19-43)Online publication date: 24-Jul-2024
  • (2023)Satisfiability Modulo Ordering Consistency Theory for SC, TSO, and PSO Memory ModelsACM Transactions on Programming Languages and Systems10.1145/357983545:1(1-37)Online publication date: 3-Mar-2023
  • (2023)Achieving High MAP-Coverage Through Pattern Constraint ReductionIEEE Transactions on Software Engineering10.1109/TSE.2022.314448049:1(99-112)Online publication date: 1-Jan-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

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
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: 03 June 2015

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. maximal causality reduction
  2. stateless model checking

Qualifiers

  • Research-article

Conference

PLDI '15
Sponsor:

Acceptance Rates

Overall Acceptance Rate 406 of 2,067 submissions, 20%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)43
  • Downloads (Last 6 weeks)0
Reflects downloads up to 17 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Parsimonious Optimal Dynamic Partial Order ReductionComputer Aided Verification10.1007/978-3-031-65630-9_2(19-43)Online publication date: 24-Jul-2024
  • (2023)Satisfiability Modulo Ordering Consistency Theory for SC, TSO, and PSO Memory ModelsACM Transactions on Programming Languages and Systems10.1145/357983545:1(1-37)Online publication date: 3-Mar-2023
  • (2023)Achieving High MAP-Coverage Through Pattern Constraint ReductionIEEE Transactions on Software Engineering10.1109/TSE.2022.314448049:1(99-112)Online publication date: 1-Jan-2023
  • (2023)Reconciling Preemption Bounding with DPORTools and Algorithms for the Construction and Analysis of Systems10.1007/978-3-031-30823-9_5(85-104)Online publication date: 22-Apr-2023
  • (2022)Who goes first? detecting go concurrency bugs via message reorderingProceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3503222.3507753(888-902)Online publication date: 28-Feb-2022
  • (2022)Interference relation-guided SMT solving for multi-threaded program verificationProceedings of the 27th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming10.1145/3503221.3508424(163-176)Online publication date: 2-Apr-2022
  • (2022)SIFT: A Tool for Property Directed Symbolic Execution of Multithreaded Software2022 IEEE Conference on Software Testing, Verification and Validation (ICST)10.1109/ICST53961.2022.00049(433-443)Online publication date: Apr-2022
  • (2021)The reads-from equivalence for the TSO and PSO memory modelsProceedings of the ACM on Programming Languages10.1145/34855415:OOPSLA(1-30)Online publication date: 15-Oct-2021
  • (2021)Satisfiability modulo ordering consistency theory for multi-threaded program verificationProceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3453483.3454108(1264-1279)Online publication date: 19-Jun-2021
  • (2021)Canary: practical static detection of inter-thread value-flow bugsProceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3453483.3454099(1126-1140)Online publication date: 19-Jun-2021
  • Show More Cited By

View Options

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