Stateful Dynamic Partial Order Reduction for Model Checking Event-Driven Applications that Do Not Terminate

  title={Stateful Dynamic Partial Order Reduction for Model Checking Event-Driven Applications that Do Not Terminate},
  author={Rahmadi Trimananda and Weiyu Luo and Brian Demsky and Guoqing Harry Xu},
  booktitle={International Conference on Verification, Model Checking and Abstract Interpretation},
Event-driven architectures are broadly used for systems that must respond to events in the real world. Event-driven applications are prone to concurrency bugs that involve subtle errors in reasoning about the ordering of events. Unfortunately, there are several challenges in using existing model-checking techniques on these systems. Event-driven applications often loop indefinitely and thus pose a challenge for stateless model checking techniques. On the other hand, deploying purely stateful… 



Stateless model checking of event-driven applications

This work proposes the first stateless model checker for event-driven applications, called R4, which systematically explores the nondeterminism in the application and concisely exposes its overall effect, which is useful for bug discovery.

Distributed Dynamic Partial Order Reduction Based Verification of Threaded Software

A distributed version of inspect is described, which implements an extended DPOR algorithm, a practical algorithm for distributed dynamic partial order reduction, and the innovations that helped distributed inspect attain nearly linear speedup on realistic examples.

Stateless model checking concurrent programs with maximal causality reduction

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.

Partial Order Reduction for Event-Driven Multi-threaded Programs

This work considers partial order reduction POR for event-driven multi-threaded programming, and proposes a new POR technique based on a backtracking set called the dependence-covering set, which proves that exploring dependence-covered sets suffices to detect all deadlock cycles and assertion violations defined over local variables.

Effective lock handling in stateless model checking

This work presents a lock-aware POR algorithm, LAPOR, that exploits independence at both instruction and critical section levels and can be exponentially faster than the state-of-the-art model checkers.

Optimal stateless model checking under the release-acquire semantics

An SMC algorithm is defined which is provably optimal in the sense that it explores each program order and read-from relation exactly once, which is strictly stronger than previous analogous optimality results, which also take coherence order into account.

Combining partial order reductions with on-the-fly model-checking

  • D. Peled
  • Computer Science
    Formal Methods Syst. Des.
  • 1996
An extension of the model-checker SPIN, which implements this combination, is studied, showing substantial reduction over traditional search, not only in the number of reachable states, but directly in the amount of memory and time used.

TransDPOR: A Novel Dynamic Partial-Order Reduction Technique for Testing Actor Programs

A novel dynamic POR technique, TransDPOR, that exploits the transitivity of the dependency relation in actor systems, and empirical results show that leveraging transitivity speeds up exploration by up to two orders of magnitude compared to existing POR techniques.

Efficient Stateful Dynamic Partial Order Reduction

The stateful runtime model checking approach combines light-weight state recording with SDPOR, and strikes a good balance between state recording overheads, on one hand, and the elimination of redundant searches, on the other hand.

Value-centric dynamic partial order reduction

An algorithm called value-centric DPOR (VCDPOR), which explores the underlying partitioning using polynomial time per class, and shows that value-happens-before is always at least as coarse as the happens-before equivalence, and can be even exponentially coarser.