Testing Distributed Systems through Symbolic Model Checking of Traces

The observation of a distributed system’s finite execution can be abstracted as a partial ordered set of events generally called finite trace. In practice, this trace can be obtained through a standard code instrumentation, which takes advantage of existing communications between processes to partially order events of different processes. We show that testing that such a distributed execution satisfies some global property amounts therefore to model check the corresponding trace. This work can be time consuming; we therefore provide an efficient symbolic Ctl modelchecking algorithm for traces. This method is based on a symbolic data structure, called Interval Sharing Trees, allowing to efficiently represent and manipulate sets of k-uples of naturals. Efficient symbolic operations are defined on this data structure in order to deal with all Ctl modalities. We show that in practice this data structure is well adapted for Ctl model checking of traces.

[1]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[2]  Leslie Lamport,et al.  Distributed snapshots: determining global states of distributed systems , 1985, TOCS.

[3]  Randal E. Bryant,et al.  Symbolic Boolean manipulation with ordered binary-decision diagrams , 1992, CSUR.

[4]  Kenneth L. McMillan,et al.  Symbolic model checking: an approach to the state explosion problem , 1992 .

[5]  Kenneth L. McMillan,et al.  The SMV System , 1993 .

[6]  Antti Valmari,et al.  On-the-Fly Verification with Stubborn Sets , 1993, CAV.

[7]  Vijay K. Garg,et al.  Detection of Weak Unstable Predicates in Distributed Programs , 1994, IEEE Trans. Parallel Distributed Syst..

[8]  P. S. Thiagarajan,et al.  A trace based extension of linear time temporal logic , 1994, Proceedings Ninth Annual IEEE Symposium on Logic in Computer Science.

[9]  Carole Delporte-Gallet,et al.  Local and temporal predicates in distributed systems , 1995, TOPL.

[10]  D. Zampuniéris,et al.  Efficient handling of large sets of tuples with sharing trees , 1995, Proceedings DCC '95 Data Compression Conference.

[11]  Wojciech Penczek,et al.  Model-checking of causality properties , 1995, Proceedings of Tenth Annual IEEE Symposium on Logic in Computer Science.

[12]  Patrice Godefroid,et al.  Partial-Order Methods for the Verification of Concurrent Systems , 1996, Lecture Notes in Computer Science.

[13]  Vijay K. Garg,et al.  Detection of Strong Unstable Predicates in Distributed Programs , 1996, IEEE Trans. Parallel Distributed Syst..

[14]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[15]  P. Thiagarajan,et al.  An expressively complete linear time temporal logic for Mazurkiewicz traces , 1996, Proceedings of Twelfth Annual IEEE Symposium on Logic in Computer Science.

[16]  Vijay K. Garg,et al.  Detection of global predicates: Techniques and their limitations , 1998, Distributed Computing.

[17]  Paul Gastin,et al.  LTL Is Expressively Complete for Mazurkiewicz Traces , 2000, J. Comput. Syst. Sci..

[18]  Stephan Merz,et al.  Model Checking , 2000 .

[19]  Vijay K. Garg,et al.  On slicing a distributed computation , 2001, Proceedings 21st International Conference on Distributed Computing Systems.

[20]  Vijay K. Garg,et al.  Computation Slicing: Techniques and Theory , 2001, DISC.

[21]  Giorgio Delzanno,et al.  Babylon: An integrated Toolkit for the Specification and Verification of Parameterized Systems , 2002 .

[22]  Marco Pistore,et al.  NuSMV 2: An OpenSource Tool for Symbolic Model Checking , 2002, CAV.

[23]  Friedemann Mattern,et al.  Virtual Time and Global States of Distributed Systems , 2002 .

[24]  Vijay K. Garg,et al.  Detecting Temporal Logic Predicates in Distributed Programs Using Computation Slicing , 2003, OPODIS.

[25]  Cédric Meuter,et al.  dSL: An Environment with Automatic Code Distribution for Industrial Control Systems , 2003, OPODIS.

[26]  Koushik Sen,et al.  Detecting Errors in Multithreaded Programs by Generalized Predictive Analysis of Executions , 2005, FMOODS.

[27]  Cédric Meuter,et al.  The formal design of distributed controllers with dSL and Spin , 2005, Formal Aspects of Computing.

[28]  Koushik Sen,et al.  Online efficient predictive safety analysis of multithreaded programs , 2005, International Journal on Software Tools for Technology Transfer.

[29]  Cédric Meuter,et al.  Monitoring Distributed Controllers: When an Efficient LTL Algorithm on Sequences Is Needed to Model-Check Traces , 2006, FM.

[30]  Doron A. Peled,et al.  Efficient model checking for LTL with partial order snapshots , 2006, Theor. Comput. Sci..

[31]  Giorgio Delzanno,et al.  Symbolic Data Structure for Sets of k-uples of Integers , 2007 .

[32]  Edmund M. Clarke,et al.  Design and Synthesis of Synchronization Skeletons Using Branching Time Temporal Logic , 2008, 25 Years of Model Checking.