arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 2108.02490cs.SEcs.PL
收藏

HIPPODROME:使用静态分析总结的数据竞争修复

HIPPODROME: Data Race Repair using Static Analysis Summaries

Andreea Costea, Abhishek Tiwari, Sigmund Chianasta, Kishore R, Abhik Roychoudhury, Ilya Sergey

摘要:

实现无错误的并发程序是现代软件开发中的一项具有挑战性的任务。最先进的静态分析在生产代码中发现了数百个并发错误,可以扩展到大型代码库。然而,在不断变化的代码库中修复这些错误对程序员来说是一项艰巨的工作,特别是因为并发代码中的修复可能会以微妙的方式引入其他错误。在这项工作中,我们将展示如何利用组合静态分析的并发错误检测,使一个新的自动程序修复(APR)技术的数据竞赛在大型并发Java代码库。我们的工作的关键创新是一个算法,翻译的分析工具推断的程序摘要的错误报告的目的,到小的本地补丁,修复并发错误(不引入新的)。这种协同作用使得将组合静态并发分析的优点扩展到APR成为可能,使我们的方法有效(它可以检测和修复比现有工具更多的错误),可扩展(它需要几秒钟来分析和建议修复相当大的代码库),并且可用(通常,它不需要用户的注释,并且可以执行连续的自动修复)。我们对流行的开源项目进行的研究证实,我们的工具自动生成类似于开发人员过去提出的并发修复。

英文摘要:

Implementing bug-free concurrent programs is a challenging task in modern software development. State-of-the-art static analyses find hundreds of concurrency bugs in production code, scaling to large codebases. Yet, fixing these bugs in constantly changing codebases represents a daunting effort for programmers, particularly because a fix in the concurrent code can introduce other bugs in a subtle way. In this work, we show how to harness compositional static analysis for concurrency bug detection, to enable a new Automated Program Repair (APR) technique for data races in large concurrent Java codebases. The key innovation of our work is an algorithm that translates procedure summaries inferred by the analysis tool for the purpose of bug reporting, into small local patches that fix concurrency bugs (without introducing new ones). This synergy makes it possible to extend the virtues of compositional static concurrency analysis to APR, making our approach effective (it can detect and fix many more bugs than existing tools for data race repair), scalable (it takes seconds to analyse and suggest fixes for sizeable codebases), and usable (generally, it does not require annotations from the users and can perform continuous automated repair). Our study conducted on popular open-source projects has confirmed that our tool automatically produces concurrency fixes similar to those proposed by the developers in the past.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑