Fighting livelock in the GNU i-protocol: a case study in explicit-state model checking

  • Yifei Dong
  • Xiaoqun Du
  • Gerard J. Holzmann
  • Scott A. Smolka
Regular contribution


The i-protocol, an optimized sliding-window protocol for GNU uucp, first came to our attention in 1995 when we used the Concurrency Factory’s local model checker to detect, locate, and correct a non-trivial livelock in version 1.04 of the protocol. Since then, we have conducted a systematic case study on the protocol using four verification tools, viz. Cospan, Murϕ, Spin, and XMC, each of which supports some form of explicit-state model checking. Our results show that although the i-protocol is inherently complex – the size of its state space grows exponentially in the window size and it deploys several sophisticated optimizations aimed at minimizing control-message and retransmission overhead – it is nonetheless amenable to a number of general-purpose abstraction techniques whose application can significantly reduce the size of the protocol’s state space.


Explicit-state model checking Livelock Protocol verification Sliding-window protocol 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Alur, R., Henzinger, T.A.: Computer Aided Verification (CAV ’96), Lecture Notes in Computer Science, vol. 1102. Springer, Berlin Heidelberg New York, 1996 Google Scholar
  2. 2.
    Chamillard, A.T., Clarke, L.A., Avrunin, G.S.: Experimental design for comparing static concurrency analysis techniques. Technical Report 96-084, Computer Science Department, University of Massachusetts at Amherst, 1996 Google Scholar
  3. 3.
    Clarke, E.M., Emerson, E.A., Sistla, A.P.: Automatic verification of finite-state concurrent systems using temporal logic specifications. ACM TOPLAS 8(2):244–263, 1986 CrossRefGoogle Scholar
  4. 4.
    Cleaveland, R., Lewis, P.M., Smolka, S.A., Sokolsky, O.: The Concurrency Factory: a development environment for concurrent systems. In: Alur, Henzinger, (eds.), [1], pp. 398–401 Google Scholar
  5. 5.
    Chandy, K.M., Misra, J.: Parallel program design – a foundation. Addison-Wesley, Reading, Mass., USA, 1988 Google Scholar
  6. 6.
    Corbett, J.C.: Evaluating deadlock detection methods for concurrent software. IEEE Transactions on Software Engineering 22(3):161–180, March 1996 CrossRefGoogle Scholar
  7. 7.
    Clarke, E.M., Wing, J.M.: Formal methods: State of the art and future directions. ACM Comput Surv 28(4):626–643, 1996 CrossRefGoogle Scholar
  8. 8.
    Dong, Y: i-Protocol case study web site∼lmc/iproto/, 2000 Google Scholar
  9. 9.
    Dong, Y., Du, X., Ramakrishna, Y.S., Ramakrishnan, C.R., Ramakrishnan, I.V., Smolka, S.A., Sokolsky, O., Stark, E.W., Warren, D.S.: Fighting livelock in the i-Protocol: a comparative study of verification tools. In: Tools and Algorithms for the Construction and Analysis of Algorithms (TACAS ’99), Lecture Notes in Computer Science. Springer, Berlin Heidelberg New York, 1999 Google Scholar
  10. 10.
    Dill, D.L.: The Murϕ verification system. In: Alur, Henzinger, (eds.), [1], pp. 390–393 Google Scholar
  11. 11.
    Dong, Y., Ramakrishnan, C.R.: An optimizing compiler for efficient model checking. In: Proc. FORTE/PSTV ’99 1999 Google Scholar
  12. 12.
    Emerson, E.A., Clarke, E.M.: Characterizing correctness properties of parallel programs as fixpoints. In: Proc. 7th International Colloquium on Automata, Languages and Programming, Lecture Notes in Computer Science, vol. 85. Springer, Berlin Heidelberg New York, 1981 Google Scholar
  13. 13.
    Hu, A., Dill, D.: Efficient verification with BDDs using implicitly conjoined invariants. In: Courcoubetis, C., (ed.), Computer Aided Verification (CAV ’93), Lecture Notes in Computer Science, vol. 693. Springer, Berlin Heidelberg New York, 1993, pp. 3–14 Google Scholar
  14. 14.
    Hardin, R.H., Har’El, Z., Kurshan, R.P.: COSPAN. In: Alur, Henzinger, (eds.), [1], pp. 423–427 Google Scholar
  15. 15.
    Holzmann, G.J.: The model checker SPIN. IEEE Trans Software Eng 23(5): 279–295, 1997 CrossRefGoogle Scholar
  16. 16.
    Holzmann, G.J.: Designing executable abstractions. In: Proc. Workshop on Formal Methods in Software Practice Clearwater Beach, Fla., USA, March 1998. ACM, New York Google Scholar
  17. 17.
    Holzmann, G.J.: The engineering of a model checker: the Gnu i-protocol case study revisited. In: Dams, D., Gerth, R., Leue, S., Massink, M., (eds.), Theoretical and Practical Aspects of SPIN Model Checking, Lecture Notes in Computer Science, vol. 1680. Springer, Berlin Heidelberg New York, 1999 Google Scholar
  18. 18.
    McMillan, K.L.: Symbolic model checking. Kluwer Academic, Boston, Mass., USA, 1993 Google Scholar
  19. 19.
    Milner, R.: Communication and concurrency. International Series in Computer Science. Prentice-Hall, N.J., USA, 1989 Google Scholar
  20. 20.
    Queille, J.P., Sifakis, J.: Specification and verification of concurrent systems in Cesar. In: Proc. International Symposium in Programming, Lecture Notes in Computer Science, vol. 137. Springer, Berlin Heidelberg New York, 1982 Google Scholar
  21. 21.
    Ramakrishna, Y.S., Ramakrishnan, C.R., Ramakrishnan, I.V., Smolka, S.A., Swift, T.W., Warren D.S.: Efficient model checking using tabled resolution. In: Proc. 9th International Conference on Computer-Aided Verification (CAV ’97) Haifa, Israel, July 1997. Springer, Berlin Heidelberg New York Google Scholar
  22. 22.
    Ramakrishna, Y.S., Smolka, S.A.: Partial-order reduction in the weak modal mu-calculus. In: Mazurkiewicz, A. Winkowski, J., (eds.), Proc. 8th International Conference on Concurrency Theory (CONCUR ’97), Lecture Notes in Computer Science, vol. 1243. Springer, Berlin Heidelberg New York, 1997 Google Scholar
  23. 23.
    Spin Web Site.: Google Scholar
  24. 24.
    Tanenbaum, A.S.: Computer networks. Prentice-Hall, Reading, Mass., USA, 1996 Google Scholar
  25. 25.
    Thomas, W.: Automata on infinite objects. In: Handbook of Theoretical Computer Science, vol. B. Elsevier Science, Amsterdam, Holland, 1990 Google Scholar
  26. 26.
    Vardi, M., Wolper, P.: An automata-theoretic approach to automatic program verification. In: Symposium on Logic in Computer Science (LICS ’86) pp. 332–344, Cambridge, Mass., USA, June 1986. Computer Society, New York Google Scholar
  27. 27.
    Wolper, P.: Expressing interesting properties of programs in propositional temporal logic. In: Proc. 13th ACM Symp. on Principles of Programming Languages pp. 184–192, St. Petersburgh, Russia, January 1986 Google Scholar
  28. 28.
    XSB.: The XSB logic programming system v2.01, 1999. Available by anonymous ftp at: ftp.cs.sunysb.eduGoogle Scholar

Copyright information

© Springer-Verlag 2002

Authors and Affiliations

  • Yifei Dong
    • 1
  • Xiaoqun Du
    • 2
  • Gerard J. Holzmann
    • 3
  • Scott A. Smolka
    • 1
  1. 1.Department of Computer ScienceSUNY at Stony BrookStony BrookUSA
  2. 2.Cadence Design SystemsNew ProvidenceUSA
  3. 3.Bell LaboratoriesMurray HillUSA

Personalised recommendations