paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Sound and efficient concurrency bug prediction

可靠且高效的并发缺陷预测
FSE Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering2021匹配度 2/10 · 论文属于并发缺陷动态分析/程序分析,虽涉及 soundness/completeness 形式化保证,但未涉及 LLM/Agent、机器学习系统、浮点程序分析或贝叶斯程序分析,与画像核心交叉方向不匹配。引用 28 inbox
Yan Cai, Hao Yun, Jinqiu Wang, Lei Qiao, Jens Palsberg
crossref: 2026-09-12

AI 速览

一句话:提出 SeqCheck,可靠判定事件序列能否按指定顺序发生以预测并发缺陷,并在双线程轨迹上完备。

并发缺陷极难检测。近年动态技术可实现可靠分析,M2 甚至对双线程完备,但它只判定两个事件能否连续发生。真实缺陷常涉及更多事件与线程,且某些缺陷对应两个或多个事件顺序可交换、即使它们并非连续发生。为此,作者提出 SeqCheck,可靠判定一个事件序列能否按指定顺序发生;该有序序列表示潜在并发缺陷,多种已知缺陷形式可编码成事件序列。SeqCheck 显式分析分支事件,并配有一组高效算法。作者证明 SeqCheck 是可靠的,且在双线程轨迹上完备。

问题
现有动态并发缺陷检测难以可靠覆盖涉及多事件、多线程且事件无需连续发生的顺序交换型缺陷;M2 仅判定两个事件能否连续发生,且只对双线程完备。
方法
提出 SeqCheck,将并发缺陷编码为事件序列,显式分析分支事件并设计高效算法,以可靠判定该序列能否按指定顺序发生。
评估
通过形式化论证证明 SeqCheck 的可靠性(soundness),并证明其在双线程轨迹上的完备性;摘要未报告实证评估。
原文摘要(Abstract)

Concurrency bugs are extremely difficult to detect. Recently, several dynamic techniques achieve sound analysis. M2 is even complete for two threads. It is designed to decide whether two events can occur consecutively. However, real-world concurrency bugs can involve more events and threads. Some can occur when the order of two or more events can be exchanged even if they occur not consecutively. We propose a new technique SeqCheck to soundly decide whether a sequence of events can occur in a specified order. The ordered sequence represents a potential concurrency bug. And several known forms of concurrency bugs can be easily encoded into event sequences where each represents a way that the bug can occur. To achieve it, SeqCheck explicitly analyzes branch events and includes a set of efficient algorithms. We show that SeqCheck is sound; and it is also complete on traces of two threads.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot6451,
  title = {Sound and efficient concurrency bug prediction},
  author = {Yan Cai and Hao Yun and Jinqiu Wang and Lei Qiao and Jens Palsberg},
  booktitle = {FSE},
  year = {2021},
  doi = {10.1145/3468264.3468549}
}