Automatic assessment of failure recovery in Erlang applications

  • Authors:
  • Jan Henry Nyström

  • Affiliations:
  • Erlang Training and Consulting, Uppsala, Sweden

  • Venue:
  • Proceedings of the 8th ACM SIGPLAN workshop on ERLANG
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Erlang is a concurrent functional language, especially tailored for distributed, highly concurrent and fault-tolerant software. An important part of Erlang is its support for failure recovery. A designer implements failure recovery by organising the processes of an Erlang application into tree structures, in which parent processes monitor failures of their children and are responsible for their restart. Libraries support the creation of such structures during system initialisation. We present a technique to automatically analyse that the process structure of an Erlang application is constructed in a way that guarantees recovery from process failures. First, we extract (part of) the process structure by static analysis of the initialisation code of the application. Thereafter, analysis of the process structure checks that it will recover from any process failure. We have implemented the technique in a tool, and applied it to several OTP library applications and to a subsystem of the AXD 301 ATM switch.