RaceFixer -- An Automated Data Race Fixer

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Malakar, Sanjay, Haider, Tameem Bin, Shahriar, Rifat
Format: Preprint
Published: 2024
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866910290783764480
author Malakar, Sanjay
Haider, Tameem Bin
Shahriar, Rifat
author_facet Malakar, Sanjay
Haider, Tameem Bin
Shahriar, Rifat
contents 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.
format Preprint
id arxiv_https___arxiv_org_abs_2401_04221
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle RaceFixer -- An Automated Data Race Fixer
Malakar, Sanjay
Haider, Tameem Bin
Shahriar, Rifat
Software Engineering
Programming Languages
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.
title RaceFixer -- An Automated Data Race Fixer
topic Software Engineering
Programming Languages
url https://arxiv.org/abs/2401.04221