Session types enable the specification and verification of communicating systems. However, their theory often assumes that processes never fail. To address this limitation, we present a generalised multiparty session type (MPST) theory with crash-stop failures, where processes can crash arbitrarily. Our new theory validates more protocols and processes w.r.t. previous work. We apply minimal syntactic changes to standard session π-calculus and types: we model crashes and their handling semantically, with a generalised MPST typing system parametric on a behavioural safety property. We cover the spectrum between fully reliable and fully unreliable sessions, via optional reliability assumptions, and prove type safety and protocol conformance in the presence of crash-stop failures. Introducing crash-stop failures has non-trivial consequences: writing correct processes that handle all crash scenarios can be difficult. Yet, our generalised MPST theory allows us to tame this complexity, via model checking, to validate whether a multiparty session satisfies desired behavioural properties, e.g. deadlock-freedom or liveness, even in presence of crashes. We implement our approach using the mCRL2 model checker, and evaluate it with examples extended from the literature.
@InProceedings{barwell_et_al:LIPIcs.CONCUR.2022.35, author = {Barwell, Adam D. and Scalas, Alceste and Yoshida, Nobuko and Zhou, Fangyi}, title = {{Generalised Multiparty Session Types with Crash-Stop Failures}}, booktitle = {33rd International Conference on Concurrency Theory (CONCUR 2022)}, pages = {35:1--35:25}, series = {Leibniz International Proceedings in Informatics (LIPIcs)}, ISBN = {978-3-95977-246-4}, ISSN = {1868-8969}, year = {2022}, volume = {243}, editor = {Klin, Bartek and Lasota, S{\l}awomir and Muscholl, Anca}, publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik}, address = {Dagstuhl, Germany}, URL = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.CONCUR.2022.35}, URN = {urn:nbn:de:0030-drops-170982}, doi = {10.4230/LIPIcs.CONCUR.2022.35}, annote = {Keywords: Session Types, Concurrency, Failure Handling, Model Checking} }
Feedback for Dagstuhl Publishing