paperbot · PL 论文追踪

全部论文 待读 收藏

P1 DR.FIX: Automatically Fixing Data Races at Industry Scale

DR.FIX:在工业规模下自动修复数据竞争
PLDI 9(PLDI)2025匹配度 7/10 · 结合 LLM 与程序分析在 Go 中自动修复数据竞争,并在 Uber 工业规模部署,属于 AI 辅助程序分析与修复,与“AI→PL”方向及工业落地兴趣高度相关;但不涉及浮点、贝叶斯或 Agentic 程序分析等核心子方向。引用 1 inbox
Farnaz Behrang, Zhizhou Zhang, Georgian-Vlad Saioc, Peng Liu, Milind Chabbi
crossref: 2026-09-10

AI 速览

一句话:提出 Dr.Fix,结合 LLM 与程序分析在 Go 中自动修复数据竞争,并在 Uber 大规模部署验证。

数据竞争是共享内存并行程序中常见且危害严重的并发缺陷。尽管竞争检测研究丰富、工业工具众多,但在大型代码库中自动修复的探索仍少。本文提出 Dr.Fix,面向工业规模的数据竞争修复,将大语言模型(LLM)与程序分析结合,以处理复杂代码上下文中的多种竞争模式。工具针对广泛用于微服务、并发普遍的 Go 语言实现,并嵌入既有开发工作流。作者还分析了各设计选择对修复质量的影响。在 Uber 的 18 个月部署中,Dr.Fix 对 404 个数据竞争生成 224 个补丁(55%);其中 193 个(86%)被一百多名开发者通过代码审查接受并合入代码库。

问题
大型工业代码库中数据竞争不断引入且模式多样,检测工具虽多,但自动修复在工业规模上仍缺少有效方案。
方法
Dr.Fix 将 LLM 与程序分析结合,针对 Go 语言为真实代码中的数据竞争生成修复补丁,并集成到现有开发与代码审查流程中。
评估
在 Uber 进行 18 个月实际部署,对 404 个数据竞争生成补丁,统计生成率与代码审查接受/合入率,并分析设计选择对修复质量的影响。
原文摘要(Abstract)

Data races are a prevalent class of concurrency bugs in shared-memory parallel programs, posing significant challenges to software reliability and reproducibility. While there is an extensive body of research on detecting data races and a wealth of practical detection tools across various programming languages, considerably less effort has been directed toward automatically fixing data races at an industrial scale. In large codebases, data races are continuously introduced and exhibit myriad patterns, making automated fixing particularly challenging. In this paper, we tackle the problem of automatically fixing data races at an industrial scale. We present Dr.Fix , a tool that combines large language models (LLMs) with program analysis to generate fixes for data races in real-world settings, effectively addressing a broad spectrum of racy patterns in complex code contexts. Implemented for Go—the programming language widely used in modern microservice architectures where concurrency is pervasive and data races are common— Dr.Fix seamlessly integrates into existing development workflows. We detail the design of Dr.Fix and examine how individual design choices influence the quality of the fixes produced. Over the past 18 months, Dr.Fix has been integrated into developer workflows at Uber demonstrating its practical utility. During this period, Dr.Fix produced patches for 224 (55%) from a corpus of 404 data races spanning various categories; 193 of these patches (86%) were accepted by more than a hundred developers via code reviews and integrated into the codebase.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot3116,
  title = {DR.FIX: Automatically Fixing Data Races at Industry Scale},
  author = {Farnaz Behrang and Zhizhou Zhang and Georgian-Vlad Saioc and Peng Liu and Milind Chabbi},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {9},
  number = {PLDI},
  year = {2025},
  doi = {10.1145/3729265}
}