2014
DOI: 10.1002/stvr.1523
|View full text |Cite
|
Sign up to set email alerts
|

UNICORN: a unified approach for localizing non‐deadlock concurrency bugs

Abstract: SummaryUNICORN is an automated dynamic pattern‐detection‐based technique that finds and ranks problematic memory access patterns for non‐deadlock concurrency bugs. It monitors pairs of memory accesses, combines the pairs into problematic patterns and ranks the patterns by their suspiciousness scores. It detects significant classes of bug types, including order violations and both single‐variable and multivariable atomicity violations, which have been shown to be the most important classes of non‐deadlock concu… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
11
0

Year Published

2019
2019
2023
2023

Publication Types

Select...
5
3

Relationship

0
8

Authors

Journals

citations
Cited by 21 publications
(11 citation statements)
references
References 60 publications
0
11
0
Order By: Relevance
“…Debugging Concurrent/Distributed Programs. Our work is related to existing work on debugging concurrent programs [34], [35], [36] and distributed systems [37], [38], [39], [40]. In view of the difficulty in debugging concurrent programs and distributed systems, a variety of different approaches have been proposed.…”
Section: Related Workmentioning
confidence: 99%
“…Debugging Concurrent/Distributed Programs. Our work is related to existing work on debugging concurrent programs [34], [35], [36] and distributed systems [37], [38], [39], [40]. In view of the difficulty in debugging concurrent programs and distributed systems, a variety of different approaches have been proposed.…”
Section: Related Workmentioning
confidence: 99%
“…Taint Tracking, Program Analysis and Pattern-based Bug Finding IBIS-S uses static program analysis to find bugs because input-dependent idempotence violations match a clear, detectable pattern. Pattern based bug detection has seen success finding data-races [Savage et al 1997], concurrency bugs [Lu et al 2007a,b;Lucia and Ceze 2009;Lucia et al 2010Lucia et al , 2011Park et al 2009Park et al , 2012Shi et al 2010], and performance bugs [Nistor et al 2015[Nistor et al , 2013. Researchers have applied static analysis to help find and fix concurrency bugs [Zhang et al 2013] or to aid in enabling safe speculative parallelism, which considers similar correctness criteria to IBIS [Prabhu et al 2010].…”
Section: Rfid Protocolmentioning
confidence: 99%
“…In fact, this operation deals with the synchronization dependence relation EXIT→JOIN. If the current node satisfies the second condition, it is inserted into the previous position of tei nearest , and the current two nodes are merged into a new node (lines [12][13][14][15]). If the current node satisfies the third condition and is closer to tei nearest , it is inserted into the previous position of tei nearest , and the current two nodes are merged into a new node (lines [16][17][18][19][20][21][22][23].…”
Section: Backward Refactoring the Context Switch Linked Listmentioning
confidence: 99%
“…The reasons are that: (1) multiple threads can access shared memory without any restrictions in concurrent programs, which easily leads to a variety of potential concurrency bugs; (2) concurrency bugs only occur for specific input and thread scheduling, making them difficult to reproduce; and (3) concurrency bugs are difficult to diagnose, and frequent context switches hinder developers from understanding the concurrent program execution trace.Previous studies have proposed many approaches to expose and to detect varieties of concurrency bugs, such as deadlocks, 2,3 data races, 4-9 atomicity violations, 10-12 and order violations. [13][14][15] Besides, a rich body of deterministic record and replay techniques [16][17][18] have been developed to replay concurrency bugs effectively and efficiently. However, few approaches attempt to reason about concurrency bugs.…”
mentioning
confidence: 99%