Confirmation of deadlock potentials detected by runtime analysis

@inproceedings{Bensalem2006ConfirmationOD,
  title={Confirmation of deadlock potentials detected by runtime analysis},
  author={Saddek Bensalem and Jean-Claude Fernandez and Klaus Havelund and Laurent Mounier},
  booktitle={PADTAD '06},
  year={2006}
}
This paper presents a framework for confirming deadlock potentials detected by runtime analysis of a single run of a multi-threaded program. The multi-threaded program under examination is instrumented to emit lock and unlock events. When the instrumented program is executed, a trace is generated consisting of the lock and unlock operations performed during that specific run. A lock graph is constructed which can reveal deadlock potentials in the form of cycles. The effectiveness of this… 

Figures from this paper

Detection of deadlock potentials in multithreaded programs
TLDR
This paper presents a collection of highly scalable static and dynamic techniques for exposing potential deadlocks, and describes the use of static analysis to automatically reduce the overhead of dynamic checking for deadlock potentials.
Dynamic Testing for Deadlocks via Constraints
TLDR
A technique called ConLock+, which firstly analyzes each cycle and its corresponding execution to identify a set of scheduling constraints that are necessary conditions to trigger the corresponding deadlock, and performs a static analysis to identify conflicting memory accesses that would also contribute to the occurrence of the deadlock.
Trace driven dynamic deadlock detection and reproduction
TLDR
A novel approach for deadlock detection is proposed by designing a dynamic analysis that intelligently leverages execution traces and is able to identify 74% of the reported defects as true (or false) positives automatically leaving very few defects for manual analysis.
ConLock: a constraint-based approach to dynamic checking on deadlocks in multithreaded programs
TLDR
A novel technique entitled ConLock is presented, which identifies a set of thread scheduling constraints based on a novel should-happen-before relation and manipulates a confirmation run with the aim to not violate a reduced set of scheduling constraints and to trigger an occurrence of the deadlock if the cycle is a real deadlock.
Dappled Deadlock Detection in Multithreaded Programs
TLDR
A novel potential deadlock detection technique Magic clock is presented by analyzing the execution traces (containing no deadlock occurrence) of large-scale multithreaded programs, which is more scalable and efficient than existing dynamic detectors in analyzing and detecting potential deadlocks.
PickLock: A Deadlock Prediction Approach under Nested Locking
TLDR
This work presents a fundamentally new predictive approach to detect deadlocks in concurrent programs, not based on cycle detection in lock-graphsi¾?[1], and implements it in a tool called PickLock, which is a modular extension of the Penelope framework.
Two Types of Deadlock Detection: Cyclic and Acyclic
TLDR
Two types of deadlocks are proposed, block-cycle type deadlocks and waiting-block type deadlock which are acyclic, which are addressed in future directions.
A randomized dynamic program analysis technique for detecting real deadlocks
TLDR
A novel dynamic analysis technique that finds real deadlocks in multi-threaded programs by observing an execution of the program and controlling a random thread scheduler to create the potential deadlocks with high probability.
Deadlocks: From Exhibiting to Healing
TLDR
The basic healing idea and its limitations, the pitfalls and how to overcome them, and experimental results are described, which are very important as any mistake is liable to actually create new deadlocks.
Static Deadlock Detection for the SHIM Concurrent Language
  • N. Vasudevan, S. Edwards
  • Computer Science
    2008 6th ACM/IEEE International Conference on Formal Methods and Models for Co-Design
  • 2008
TLDR
This work presents a model-checking-based static deadlock detection technique for the SHIM language that runs in only a few seconds for modest-sized programs, making it practical to use as part of a compilation chain.
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 27 REFERENCES
Detecting Potential Deadlocks with Static Analysis and Run-Time Monitoring
TLDR
A generalized version of the GoodLock algorithm is presented that detects potential deadlocks involving any number of threads and an algorithm is given that determines, based on the result of type inference, which run-time checks can safely be omitted.
Dynamic Deadlock Analysis of Multi-threaded Programs
This paper presents a dynamic program analysis algorithm that can detect deadlock potentials in a multi-threaded program by examining a single execution trace, obtained by running an instrumented
Using Runtime Analysis to Guide Model Checking of Java Programs
TLDR
Two runtime analysis algorithms, an existing data race detection algorithm and a new deadlock detection algorithm, have been implemented to analyze Java programs to generate a set of warnings which can be used to guide a model checker, thereby reducing the search space.
Monitoring Java Programs with Java PathExplorer
Model checking for programming languages using VeriSoft
TLDR
This paper discusses how model checking can be extended to deal directly with "actual" descriptions of concurrent systems, e.g., implementations of communication protocols written in programming languages such as C or C++, and introduces a new search technique that is suitable for exploring the state spaces of such systems.
A practical method for verifying event-driven software
  • G. Holzmann, Margaret H. Smith
  • Computer Science
    Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002)
  • 1999
TLDR
This paper describes a verification method that requires little or no specialized knowledge in model construction and allows us to extract models mechanically from the source of software applications, securing accuracy.
Model-checking multi-threaded distributed Java programs
  • S. Stoller
  • Computer Science
    International Journal on Software Tools for Technology Transfer
  • 2002
TLDR
It is described the design of a new tool for state-less state-space exploration of Java programs that incorporates a reduction that exploits a common pattern of synchronization, namely, the use of locks to protect shared data structures.
Deadlock detection in distributed databases
TLDR
A uniform model in which published algorithms can be cast is given, and the fundamental principles on which distributed deadlock detection schemes are based are presented, and a hierarchy of deadlock models is presented.
Model Checking Programs
TLDR
A verification and testing environment for Java, called Java PathFinder (JPF), which integrates model checking, program analysis and testing, and uses state compression to handle big states and partial order and symmetry reduction, slicing, abstraction, and runtime analysis techniques to reduce the state space.
Model checking JAVA programs using JAVA PathFinder
TLDR
An effort to formally analyze, using Spin, a multi-threaded operating system for the Deep-Space 1 space craft, and of previous work in applying existing model checkers and theorem provers to real applications.
...
1
2
3
...