ACM Home Page
Please provide us with feedback. Feedback
Verifying fault-tolerant Erlang programs
Full text PdfPdf (265 KB)
Source Annual ERLANG Workshop archive
Proceedings of the 2005 ACM SIGPLAN workshop on Erlang table of contents
Tallinn, Estonia
SESSION: Implementation table of contents
Pages: 26 - 34  
Year of Publication: 2005
ISBN:1-59593-066-3
Authors
Clara Benac Earle  Universidad Carlos III de Madrid
Lars-Åke Fredlund  Universidad Politecnica de Madrid
John Derrick  University of Sheffield
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 5,   Downloads (12 Months): 40,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
Save this Article to a Binder    Display Formats: BibTex  EndNote ACM Ref   
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1088361.1088367
What is a DOI?

ABSTRACT

In this paper we target the verification of fault tolerant aspects of distributed applications written in Erlang. Erlang is unusual in several respects. First, it is one of a few functional languages that is used in industry. Secondly the programming language contains support for concurrency and distribution as well as including constructs for handling fault-tolerance.Erlang programmers, of course, mostly work with ready-made language components. Our approach to verification of fault tolerance is to verify systems built using two central components of most Erlang software, a generic server component with fault tolerance handling, and a supervisor component that restarts failed processes.To verify Erlang programs built using these components we automatically translate them into processes of the μCRL process algebra, generate their state spaces, and use a model checker to determine whether they satisfy correctness properties specified in the μ-calculus.The key observation of this paper is that, due to the usage of these higher-level design patterns (supervisors and generic servers) that structure process communication and fault recovery, the state space generated from a Erlang program, even with failures occurring, is relatively small, and can be generated automatically. Moreover the method is independent from the actual Erlang program studied, and is thus reusable.We demonstrate the approach in a case study where a server, built using the generic server component, implements a locking service for a number of client processes, and show that the server tolerates client failures.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
T. Arts, C. B. Earle, and J. J. Sánchez-Penas. Translating erlang to μcrl. In Fourth International Conference on Application of Concurrency to System Design, June 2004.
 
2
 
3
4
5
 
6
CWI. μmcrl: A language and tool set to study communicating processes with data, February 1999.
 
7
Building a better bug-trap. Economist Technology Quarterly, June 2003.
 
8
E. Emerson and C.-L. Lei. Efficient model checking in fragments of the propositional mu-calculus. In Proc. LICS, pages 267--278, 1986.
 
9
 
10
H. Garavel, F. Lang, and R. Mateescu. An overview of cadp 2001. European Association for Software Science and Technology (EASST) Newsletter, 4:13--24, August 2002.
 
11
 
12
J. F. Groote, W. Fokking, and M. Reiniers. Modelling concurrent systems: Protocol verification in μCRL, April 2000.
 
13
K. Havelund and T. Pressburger. Model checking java programs using java pathfinder. STTT, 2(4):366--381, March 2000.
 
14
 
15
 
16
D. Kozen. Results on the propositional μ-calculus. TCS, 27:333--354, 1983.
 
17
R. Mateescu. Local model-checking of an alternation-free value-based modal mu-calculus. In Proceedings of the International Workshop on Software Tools for Technology Transfer STTT'98, Aalborg, Denmark, July 1998.
 
18
 
19
20
 
21
 
22
 
23
A. G. Wouters. Manual for the μcrl tool set (version 2.8.2). Technical Report SEN-R0130, CWI, Amsterdam, 2001.


Collaborative Colleagues:
Clara Benac Earle: colleagues
Lars-Åke Fredlund: colleagues
John Derrick: colleagues