Proceedings of the 2014 International Symposium on Software Testing and Analysis 2014
DOI: 10.1145/2610384.2610398
|View full text |Cite
|
Sign up to set email alerts
|

Automatic repair for multi-threaded programs with Deadlock/Livelock using maximum satisfiability

Abstract: Deadlock-freedom is a major challenge in developing multithreaded programs, as a deadlock cannot be resolved until one restarts the program (mostly by using manual intervention). To avoid the risk of blocking, a program may use the trylock operations rather than lock operations. In this case, if a thread fails to acquire a lock using trylock, since trylock is non-blocking, the thread can release acquired locks to avoid a deadlock after trylock returns. Although this approach avoids deadlocks, it may also intro… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
16
0

Year Published

2015
2015
2024
2024

Publication Types

Select...
5
3
1

Relationship

0
9

Authors

Journals

citations
Cited by 27 publications
(16 citation statements)
references
References 20 publications
0
16
0
Order By: Relevance
“…Several approaches target at defect classes where the specification is complete, effectively avoiding the problem of weak test suites [11]. Typical defect classes include memory leaks [43], where the specification is semantically equivalent to the original program without leaks, concurrency bugs [44], [45], [46], where the specification is semantically equivalent to the original program without concurrency bugs, and configuration errors [47], where the specification can be interactively queried from the user. Though these approaches have a high precision, they target totally different defect classes compared with our work.…”
Section: Discussionmentioning
confidence: 99%
“…Several approaches target at defect classes where the specification is complete, effectively avoiding the problem of weak test suites [11]. Typical defect classes include memory leaks [43], where the specification is semantically equivalent to the original program without leaks, concurrency bugs [44], [45], [46], where the specification is semantically equivalent to the original program without concurrency bugs, and configuration errors [47], where the specification can be interactively queried from the user. Though these approaches have a high precision, they target totally different defect classes compared with our work.…”
Section: Discussionmentioning
confidence: 99%
“…This work on automatic repair of concurrency bugs has been further extended [103]. Lin et al [99] also insert locks by encoding the problem as a satisfiability one. In Dfixer [17], no new locks are introduced to repair concurrency bugs, instead existing locks are pre-acquired in one thread.…”
Section: Other Oraclesmentioning
confidence: 99%
“…ConAir [65] tries to recover most concurrency bugs including deadlock. Lin et al [36] propose to change lock acquisition primitives to the corresponding primitives with trials (e.g., from pthread_mutex_lock to pthread_mutex_trylock) to partially fix a deadlock. They further propose to recover program executions once a deadlock occurs.…”
Section: Concurrency Bug Fixing and Recoverymentioning
confidence: 99%
“…They further propose to recover program executions once a deadlock occurs. However, there are still challenges for recovery from deadlock occurrence as discussed in [36].…”
Section: Concurrency Bug Fixing and Recoverymentioning
confidence: 99%