IFIX: Fixing concurrency bugs while they are introduced

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 poli...

Full description

Saved in:
Bibliographic Details
Main Authors: WANG, Zan, WANG, Haichi, LIU, Shuang, SUN, Jun, WANG, Haoyu, CHEN, Junjie
Format: text
Language:English
Published: Institutional Knowledge at Singapore Management University 2020
Subjects:
Online Access:https://ink.library.smu.edu.sg/sis_research/5938
https://ink.library.smu.edu.sg/context/sis_research/article/6941/viewcontent/IFIX_2020_pv.pdf
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Singapore Management University
Language: English
id sg-smu-ink.sis_research-6941
record_format dspace
spelling sg-smu-ink.sis_research-69412021-05-14T06:29:13Z IFIX: Fixing concurrency bugs while they are introduced WANG, Zan WANG, Haichi LIU, Shuang SUN, Jun WANG, Haoyu CHEN, Junjie 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 2020-03-01T08:00:00Z text application/pdf https://ink.library.smu.edu.sg/sis_research/5938 info:doi/10.1109/ICECCS51672.2020.00025 https://ink.library.smu.edu.sg/context/sis_research/article/6941/viewcontent/IFIX_2020_pv.pdf http://creativecommons.org/licenses/by-nc-nd/4.0/ Research Collection School Of Computing and Information Systems eng Institutional Knowledge at Singapore Management University bug fix concurrency locking policy Software Engineering
institution Singapore Management University
building SMU Libraries
continent Asia
country Singapore
Singapore
content_provider SMU Libraries
collection InK@SMU
language English
topic bug fix
concurrency
locking policy
Software Engineering
spellingShingle bug fix
concurrency
locking policy
Software Engineering
WANG, Zan
WANG, Haichi
LIU, Shuang
SUN, Jun
WANG, Haoyu
CHEN, Junjie
IFIX: Fixing concurrency bugs while they are introduced
description 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
format text
author WANG, Zan
WANG, Haichi
LIU, Shuang
SUN, Jun
WANG, Haoyu
CHEN, Junjie
author_facet WANG, Zan
WANG, Haichi
LIU, Shuang
SUN, Jun
WANG, Haoyu
CHEN, Junjie
author_sort WANG, Zan
title IFIX: Fixing concurrency bugs while they are introduced
title_short IFIX: Fixing concurrency bugs while they are introduced
title_full IFIX: Fixing concurrency bugs while they are introduced
title_fullStr IFIX: Fixing concurrency bugs while they are introduced
title_full_unstemmed IFIX: Fixing concurrency bugs while they are introduced
title_sort ifix: fixing concurrency bugs while they are introduced
publisher Institutional Knowledge at Singapore Management University
publishDate 2020
url https://ink.library.smu.edu.sg/sis_research/5938
https://ink.library.smu.edu.sg/context/sis_research/article/6941/viewcontent/IFIX_2020_pv.pdf
_version_ 1770575697943724032