arXiv · 2401.04221
RaceFixer -- An Automated Data Race Fixer
Abstract
Fixing software bugs has always been an essential and time-consuming process in software development. Fixing concurrency bugs has become especially critical in the multicore era. However, fixing concurrency bugs is challenging 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 RaceFixer, a tool that automates the process of fixing one common type of concurrency bug: single-variable atomicity violations. RaceFixer starts from the bug reports of an existing bug-detection tool ThreadSanitizer. It augments these with static analysis to construct a suitable patch for each bug report. It tries to combine the patches of multiple bugs for better performance and code readability. Finally, we test RaceFixer on benchmarks from TheadSanitizer.
Explore related subjects
Keep this discovery
Sanjay Malakar, Tameem Bin Haider, Rifat Shahriar. 2024-01-08. RaceFixer -- An Automated Data Race Fixer. https://arxiv.org/abs/2401.04221
Cite the original work for its findings. Save a collection to share your selection of sources.