Understanding and generating high quality patches for concurrency bugs
- 1 November 2016
- conference paper
- conference paper
- Published by Association for Computing Machinery (ACM) in Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering
- p. 715-726
- https://doi.org/10.1145/2950290.2950309
Abstract
Concurrency bugs are time-consuming to fix correctly by developers and a severe threat to software reliability. Although many auto-fixing techniques have been proposed recently for concurrency bugs, there is still a big gap between the quality of automatically generated patches and manually designed ones. This paper first conducts an in-depth study of manual patches for 77 real-world concurrency bugs, which provides both assessments for existing techniques and actionable suggestions for future research. Guided by this study, a new tool HFix is designed. It can automatically generate patches, which have matching quality as manual patches, for many concurrency bugs.Keywords
Funding Information
- Huawei Technologies
- Division of Information and Intelligent Systems (1546543)
- Division of Computing and Communication Foundations (1217582, 1439091, 1514189)
- Alfred P. Sloan Foundation
- Division of Computer and Network Systems (1514256)
This publication has 37 references indexed in Scilit:
- What change history tells us about thread synchronizationPublished by Association for Computing Machinery (ACM) ,2015
- ConcBugAssist: constraint solving for diagnosis and repair of concurrency bugsPublished by Association for Computing Machinery (ACM) ,2015
- Safe Memory-Leak Fixing for C ProgramsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2015
- AutoCSP: Automatically Retrofitting CSP to Web ApplicationsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2015
- An Empirical Study on Real Bug FixesPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2015
- Regression-Free Synthesis for ConcurrencyLecture Notes in Computer Science, 2014
- A Study of Linux File System EvolutionACM Transactions on Storage, 2014
- Efficient Synthesis for Concurrency by Semantics-Preserving TransformationsPublished by Springer Science and Business Media LLC ,2013
- How do fixes become bugs?Published by Association for Computing Machinery (ACM) ,2011
- EraserACM Transactions on Computer Systems, 1997