Title
IFIX: Fixing Concurrency Bugs While They Are Introduced
Abstract
Concurrency bugs are notoriously hard to identify and fix. A systematic way of avoiding concurrency bugs is to design and implement a locking policy that consistently guards all shared variables. Concurrency bugs thus can be viewed as the result of an illy-designed or poorly implemented locking policy. The trouble is that the locking policy is often not documented, which makes debugging concurrency bugs clueless. We argue that it is too late to debug concurrency bugs after programming is done and we instead detect and fix them while they are being implemented. In this work, we propose an approach named IFIX which flags potential concurrency bugs and recommends fixes while the bugs are introduced. The key idea is to automatically conjecture what the intended locking policy is based on static analysis and recommend fixes accordingly. The recommended fixes are present to the programmer promptly and the user feedback (i.e., whether the certain recommendation is selected) is used to refine the conjectured locking policy and consequently future fixes. IFIX is evaluated on 43 concurrent programs, and through a user study with 30 programmers. The experiment results and user feedback show that IFIX is efficient, accurate and user-friendly.
Year
DOI
Venue
2020
10.1109/ICECCS51672.2020.00025
2020 25th International Conference on Engineering of Complex Computer Systems (ICECCS)
Keywords
DocType
ISBN
concurrency,bug fix,locking policy
Conference
978-1-7281-8559-0
Citations 
PageRank 
References 
0
0.34
0
Authors
6
Name
Order
Citations
PageRank
Zan Wang1121.53
Haichi Wang200.34
Shuang Liu33622.95
Jun Sun41407120.35
Haoyu Wang500.34
Junjie Chen68314.71