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...
Saved in:
Main Authors: | , , , , , |
---|---|
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 |