Publication Type
Conference Proceeding Article
Version
publishedVersion
Publication Date
3-2020
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
Keywords
bug fix, concurrency, locking policy
Discipline
Software Engineering
Research Areas
Software and Cyber-Physical Systems
Publication
2020 25th International Conference on Engineering of Complex Computer Systems (ICECCS): Singapore, March 4-6: Proceedings
First Page
155
Last Page
164
ISBN
9781728185583
Identifier
10.1109/ICECCS51672.2020.00025
Publisher
IEEE Computer Society
City or Country
Los Alamitos, CA
Embargo Period
5-13-2021
Citation
WANG, Zan; WANG, Haichi; LIU, Shuang; SUN, Jun; WANG, Haoyu; and CHEN, Junjie.
IFIX: Fixing concurrency bugs while they are introduced. (2020). 2020 25th International Conference on Engineering of Complex Computer Systems (ICECCS): Singapore, March 4-6: Proceedings. 155-164.
Available at: https://ink.library.smu.edu.sg/sis_research/5938
Copyright Owner and License
Publisher
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-No Derivative Works 4.0 International License.
Additional URL
https://doi.org/10.1109/ICECCS51672.2020.00025