Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article
Open access

Discovering and correcting a deadlock in a channel implementation

Published: 01 August 2019 Publication History

Abstract

We investigate the cause of a deadlock in the implementation of a channel in a message-passing concurrency API. We model the channel implementation using the process algebra CSP, and then use the model checker FDR to find the cause of the deadlock. The bug is rather subtle, and arguably infeasible to spot by hand. We then propose a straightforward fix to the bug, and use CSP and FDR to verify this fix.

References

References

[1]
Antonino P, Gibson-Robinson T, Roscoe AW (2016) Efficient deadlock-freedom checking using local analysis and SAT solving. In: Proceedings of IFM, vol 9681, pp 345–360. LNCS
[2]
Antonino P, Gibson-Robinson T, Roscoe AW (2016) Tighter reachability criteria for deadlock freedom analysis. In: Proceedings of FM, vol 9995. LNCS
[3]
Antonino P, Gibson-Robinson T, Roscoe AW (2017) The automatic detection of token structures and invariants using SAT checking. In: Proceedings of TACAS, vol 10206, pp 249–265. LNCS
[4]
Brookes SD and Roscoe AW Deadlock analysis in networks of communicating processes Distrib Comput 1991 4 209-230
[5]
Gibson-Robinson T, Armstrong P, Boulgakov A, Roscoe AW (2014) FDR3—a modern refinement checker for CSP. In: Proceedings of Tools and algorithms for the construction and analysis of systems (TACAS), vol 8413. LNCS
[6]
Lawrence J (2005) Practical applications of CSP and FDR to software design. In: Communicating sequential processes: the first 25 years. Lecture notes in computer science, vol 3525, pp 151–174. Springer, Berlin
[7]
Lowe G (1996) Breaking and fixing the Needham–Schroeder public-key protocol using FDR. In: Proceedings of TACAS. Lecture notes in computer science, vol 1055, pp 147–166. Springer, Berlin. Also in Software—Concepts and Tools (1996) 17:93–102
[8]
Lowe G (2011) Implementing generalised alt—a case study in validated design using CSP. In: Communicating process architectures, pp 1–34
[9]
Lowe G (2018) View abstraction for systems with component identities. In: Proceedings of the international symposium on formal methods (FM 2018), vol 10951, pp 502–522. Springer, Berlin
[10]
Lowe G (2019) Parameterised verification of systems with component identities, using view abstraction. Submitted for publication
[11]
JMR Martin (1996) The design and construction of deadlock-free concurrent systems. Ph.D. thesis, University of Buckingham
[12]
Mota A and Sampaio A Model-checking CSP-Z: strategy, tool support and industrial application Science of computer programming 2001 40 1 59-96
[16]
Roscoe AW and Dathi N The pursuit of deadlock freedom Inf Comput 1987 75 3 289-327
[17]
Roscoe AW and Hopkins D SVA, a tool for analysing shared-variable programs Proceedings of AVoCS 2007 2007 177-183
[18]
Roscoe AW Understanding concurrent systems 2010 Berlin Springer
[19]
Sufrin B (2008) Communicating scala objects. In: Proceedings of communicating process architectures (CPA)
[20]
Welch P, Martin J (2000) A CSP model for Java multithreading. In: Proceedings of the IEEE international symposium on software engineering for parallel and distributed systems, pp 114–122

Cited By

View all
  • (2023)Toward Verifying Cooperatively Scheduled Runtimes Using CSPFormal Aspects of Computing10.1145/360594235:4(1-45)Online publication date: 21-Nov-2023
  • (2022)Parameterized verification of systems with component identities, using view abstractionInternational Journal on Software Tools for Technology Transfer (STTT)10.1007/s10009-022-00648-024:2(287-324)Online publication date: 1-Apr-2022

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Formal Aspects of Computing
Formal Aspects of Computing  Volume 31, Issue 4
Aug 2019
44 pages
ISSN:0934-5043
EISSN:1433-299X
Issue’s Table of Contents

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 01 August 2019
Accepted: 26 June 2019
Received: 31 August 2018
Published in FAC Volume 31, Issue 4

Author Tags

  1. Message-passing concurrency
  2. Channel implementation
  3. Model checking
  4. CSP

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)19
  • Downloads (Last 6 weeks)7
Reflects downloads up to 03 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Toward Verifying Cooperatively Scheduled Runtimes Using CSPFormal Aspects of Computing10.1145/360594235:4(1-45)Online publication date: 21-Nov-2023
  • (2022)Parameterized verification of systems with component identities, using view abstractionInternational Journal on Software Tools for Technology Transfer (STTT)10.1007/s10009-022-00648-024:2(287-324)Online publication date: 1-Apr-2022

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media