An End-to-End Approach for Fixing Concurrency Bugs via SHB-Based Context Extractor
This addresses the challenge of time-consuming and error-prone manual repair of concurrency bugs for developers in multi-core and distributed systems, representing a novel method rather than an incremental improvement.
The paper tackled the problem of automatically fixing concurrency bugs in software by introducing ConFixAgent, an LLM-driven agent that eliminates the need for prior bug-related information and uses a novel context extraction method based on Static Happens-Before Graphs, resulting in significantly outperforming state-of-the-art tools in addressing diverse concurrency bugs.
With the rise of multi-core processors and distributed systems, concurrent programming has become essential yet challenging, primarily due to the non-deterministic nature of thread execution. Manually addressing concurrency bugs is time-consuming and error-prone. Automated Program Repair techniques provide a promising solution. However, developing an end-to-end concurrency bug repair tool is particularly challenging. Most existing tools rely on the assumption that bug-related information is readily available or that concurrency bug contexts are ideally extracted, which is often impractical in real-world scenarios. This paper introduces ConFixAgent, an LLM-driven agent capable of fixing various types of concurrency bugs in an end-to-end manner, eliminating the need for any prior bug-related information. Specifically, we propose a novel context extraction approach designed for concurrency bug repair, utilizing Static Happens-Before Graphs to identify bug-relevant sections.We implemented ConFixAgent and evaluated it across multiple benchmark sets. Our extensive experiments demonstrate that ConFixAgent significantly outperforms state-of-the-art tools in addressing diverse types of concurrency bugs, with its context extraction method markedly enhancing the accuracy of LLM-generated repair solutions.