Automated atomicity-violation fixing

Guoliang Jin, Linhai Song, Wei Zhang, Shan Lu, Ben Liblit

Research output: Chapter in Book/Report/Conference proceedingConference contribution

174 Scopus citations

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.

Original languageEnglish (US)
Title of host publicationPLDI'11 - Proceedings of the 2011 ACM Conference on Programming Language Design and Implementation
PublisherAssociation for Computing Machinery
Pages389-400
Number of pages12
ISBN (Print)9781450306638
DOIs
StatePublished - 2011
Event32nd ACM Conference on Programming Language Design and Implementation, PLDI 2011 - San Jose, United States
Duration: Jun 4 2011Jun 8 2011

Publication series

NameProceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)

Conference

Conference32nd ACM Conference on Programming Language Design and Implementation, PLDI 2011
Country/TerritoryUnited States
CitySan Jose
Period6/4/116/8/11

All Science Journal Classification (ASJC) codes

  • Software

Fingerprint

Dive into the research topics of 'Automated atomicity-violation fixing'. Together they form a unique fingerprint.

Cite this