Deadlock prediction via generalized dependency

Jinpeng Zhou, Hanmei Yang, John Lange, Tongping Liu

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

5 Scopus citations

Abstract

Deadlocks are notorious bugs in multithreaded programs, causing serious reliability issues. However, they are difficult to be fully expunged before deployment, as their appearances typically depend on specific inputs and thread schedules, which require the assistance of dynamic tools. However, existing deadlock detection tools mainly focus on locks, but cannot detect deadlocks related to condition variables. This paper presents a novel approach to fill this gap. It extends the classic lock dependency to generalized dependency by abstracting the signal for the condition variable as a special resource so that communication deadlocks can be modeled as hold-and-wait cycles as well. It further designs multiple practical mechanisms to record and analyze generalized dependencies. In the end, this paper presents the implementation of the tool, called UnHang. Experimental results on real applications show that UnHang is able to find all known deadlocks and uncover two new deadlocks. Overall, UnHang only imposes around 3% performance overhead and 8% memory overhead, making it a practical tool for the deployment environment.

Original languageEnglish
Title of host publicationISSTA 2022 - Proceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis
EditorsSukyoung Ryu, Yannis Smaragdakis
PublisherAssociation for Computing Machinery, Inc
Pages455-466
Number of pages12
ISBN (Electronic)9781450393799
DOIs
StatePublished - Jul 18 2022
Externally publishedYes
Event31st ACM SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2022 - Virtual, Online, Korea, Republic of
Duration: Jul 18 2022Jul 22 2022

Publication series

NameISSTA 2022 - Proceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis

Conference

Conference31st ACM SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2022
Country/TerritoryKorea, Republic of
CityVirtual, Online
Period07/18/2207/22/22

Funding

We are thankful to the anonymous reviewers for their constructive feedback that has helped us improve this paper. This manuscript has been authored by UT-Battelle, LLC under Contract No. DE-AC05-00OR22725 with the U.S. Department of Energy. The United States Government retains and the publisher, by accepting the article for publication, acknowledges that the United States Government retains a non-exclusive, paidup, irrevocable, world-wide license to publish or reproduce the published form of the manuscript, or allow others to do so, for United States Government purposes. The Department of Energy will provide public access to these results of federally sponsored research in accordance with the DOE Public Access Plan (http://energy.gov/downloads/doe-public-access-plan). This material is also based upon work supported by the National Science Foundation under Award CCF-2024253, and UMass Start-up Package. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

Keywords

  • Condition Variables
  • Deadlock Prediction
  • Multithreaded Programs

Fingerprint

Dive into the research topics of 'Deadlock prediction via generalized dependency'. Together they form a unique fingerprint.

Cite this