Automated atomicity-violation fixing. Jin, G., Song, L., Zhang, W., Lu, S., & Liblit, B. In Proc. of the ACM SIGPLAN Conf. on Programming Language Design and Implementation, pages 389--400, 2011. abstract bibtex Fixing software bugs has always been an important and time-consuming process in software development. Fixing concurrency bugs has become especially critical in the multicore era. However, fixing concurrency bugs is challenging, in part due to non-deterministic failures and tricky parallel reasoning. Beyond correctly fixing the original problem in the software, a good patch should also avoid introducing new bugs, degrading performance unnecessarily, or damaging software readability. Existing tools cannot automate the whole fixing process and provide good-quality patches. We present AFix, a tool that automates the whole process of fixing one common type of concurrency bug: single-variable atomicity violations. AFix starts from the bug reports of existing bug-detection tools. It augments these with static analysis to construct a suitable patch for each bug report. It further tries to combine the patches of multiple bugs for better performance and code readability. Finally, AFix's run-time component provides testing customized for each patch. Our evaluation shows that patches automatically generated by AFix correctly eliminate six out of eight real-world bugs and significantly decrease the failure probability in the other two cases. AFix patches never introduce new bugs and usually have similar performance to manually-designed patches.
@inproceedings{jin_automated_2011,
title = {Automated atomicity-violation fixing},
abstract = {Fixing software bugs has always been an important and time-consuming process in software development. Fixing concurrency bugs has become especially critical in the multicore era. However, fixing concurrency bugs is challenging, in part due to non-deterministic failures and tricky parallel reasoning. Beyond correctly fixing the original problem in the software, a good patch should also avoid introducing new bugs, degrading performance unnecessarily, or damaging software readability. Existing tools cannot automate the whole fixing process and provide good-quality patches. We present AFix, a tool that automates the whole process of fixing one common type of concurrency bug: single-variable atomicity violations. AFix starts from the bug reports of existing bug-detection tools. It augments these with static analysis to construct a suitable patch for each bug report. It further tries to combine the patches of multiple bugs for better performance and code readability. Finally, AFix's run-time component provides testing customized for each patch. Our evaluation shows that patches automatically generated by AFix correctly eliminate six out of eight real-world bugs and significantly decrease the failure probability in the other two cases. AFix patches never introduce new bugs and usually have similar performance to manually-designed patches.},
urldate = {2013-09-18TZ},
booktitle = {Proc. of the {ACM} {SIGPLAN} {Conf}. on {Programming} {Language} {Design} and {Implementation}},
author = {Jin, Guoliang and Song, Linhai and Zhang, Wei and Lu, Shan and Liblit, Ben},
year = {2011},
keywords = {atomicity violations, automated debugging, automated program repair, concurrency, critical regions, deadlock, mutex locks, mutual exclusion, patching, static analysis},
pages = {389--400}
}
Downloads: 0
{"_id":"dBXFWxcay59grN4FK","bibbaseid":"jin-song-zhang-lu-liblit-automatedatomicityviolationfixing-2011","downloads":0,"creationDate":"2016-10-15T13:23:23.509Z","title":"Automated atomicity-violation fixing","author_short":["Jin, G.","Song, L.","Zhang, W.","Lu, S.","Liblit, B."],"year":2011,"bibtype":"inproceedings","biburl":"http://bibbase.org/zotero/pentarious","bibdata":{"bibtype":"inproceedings","type":"inproceedings","title":"Automated atomicity-violation fixing","abstract":"Fixing software bugs has always been an important and time-consuming process in software development. Fixing concurrency bugs has become especially critical in the multicore era. However, fixing concurrency bugs is challenging, in part due to non-deterministic failures and tricky parallel reasoning. Beyond correctly fixing the original problem in the software, a good patch should also avoid introducing new bugs, degrading performance unnecessarily, or damaging software readability. Existing tools cannot automate the whole fixing process and provide good-quality patches. We present AFix, a tool that automates the whole process of fixing one common type of concurrency bug: single-variable atomicity violations. AFix starts from the bug reports of existing bug-detection tools. It augments these with static analysis to construct a suitable patch for each bug report. It further tries to combine the patches of multiple bugs for better performance and code readability. Finally, AFix's run-time component provides testing customized for each patch. Our evaluation shows that patches automatically generated by AFix correctly eliminate six out of eight real-world bugs and significantly decrease the failure probability in the other two cases. AFix patches never introduce new bugs and usually have similar performance to manually-designed patches.","urldate":"2013-09-18TZ","booktitle":"Proc. of the ACM SIGPLAN Conf. on Programming Language Design and Implementation","author":[{"propositions":[],"lastnames":["Jin"],"firstnames":["Guoliang"],"suffixes":[]},{"propositions":[],"lastnames":["Song"],"firstnames":["Linhai"],"suffixes":[]},{"propositions":[],"lastnames":["Zhang"],"firstnames":["Wei"],"suffixes":[]},{"propositions":[],"lastnames":["Lu"],"firstnames":["Shan"],"suffixes":[]},{"propositions":[],"lastnames":["Liblit"],"firstnames":["Ben"],"suffixes":[]}],"year":"2011","keywords":"atomicity violations, automated debugging, automated program repair, concurrency, critical regions, deadlock, mutex locks, mutual exclusion, patching, static analysis","pages":"389--400","bibtex":"@inproceedings{jin_automated_2011,\n\ttitle = {Automated atomicity-violation fixing},\n\tabstract = {Fixing software bugs has always been an important and time-consuming process in software development. Fixing concurrency bugs has become especially critical in the multicore era. However, fixing concurrency bugs is challenging, in part due to non-deterministic failures and tricky parallel reasoning. Beyond correctly fixing the original problem in the software, a good patch should also avoid introducing new bugs, degrading performance unnecessarily, or damaging software readability. Existing tools cannot automate the whole fixing process and provide good-quality patches. We present AFix, a tool that automates the whole process of fixing one common type of concurrency bug: single-variable atomicity violations. AFix starts from the bug reports of existing bug-detection tools. It augments these with static analysis to construct a suitable patch for each bug report. It further tries to combine the patches of multiple bugs for better performance and code readability. Finally, AFix's run-time component provides testing customized for each patch. Our evaluation shows that patches automatically generated by AFix correctly eliminate six out of eight real-world bugs and significantly decrease the failure probability in the other two cases. AFix patches never introduce new bugs and usually have similar performance to manually-designed patches.},\n\turldate = {2013-09-18TZ},\n\tbooktitle = {Proc. of the {ACM} {SIGPLAN} {Conf}. on {Programming} {Language} {Design} and {Implementation}},\n\tauthor = {Jin, Guoliang and Song, Linhai and Zhang, Wei and Lu, Shan and Liblit, Ben},\n\tyear = {2011},\n\tkeywords = {atomicity violations, automated debugging, automated program repair, concurrency, critical regions, deadlock, mutex locks, mutual exclusion, patching, static analysis},\n\tpages = {389--400}\n}\n\n","author_short":["Jin, G.","Song, L.","Zhang, W.","Lu, S.","Liblit, B."],"key":"jin_automated_2011","id":"jin_automated_2011","bibbaseid":"jin-song-zhang-lu-liblit-automatedatomicityviolationfixing-2011","role":"author","urls":{},"keyword":["atomicity violations","automated debugging","automated program repair","concurrency","critical regions","deadlock","mutex locks","mutual exclusion","patching","static analysis"],"downloads":0},"search_terms":["automated","atomicity","violation","fixing","jin","song","zhang","lu","liblit"],"keywords":["atomicity violations","automated debugging","automated program repair","concurrency","critical regions","deadlock","mutex locks","mutual exclusion","patching","static analysis"],"authorIDs":[],"dataSources":["QiRZ7m7shEMvADZkd"]}