paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Constraint Based Program Repair for Persistent Memory Bugs

面向持久内存错误的基于约束的程序修复
ICSE Proceedings of the IEEE/ACM 46th International Conference on Software Engineering2024匹配度 2/10 · 该论文属于基于约束的程序修复与持久内存错误分析,虽涉及程序分析和形式化方法,但未涉及用户核心关注的 LLM/Agent 与静态分析交叉、浮点程序分析或贝叶斯程序分析,研究方向交集有限。引用 4 inbox
Zunchen Huang, Chao Wang
crossref: 2026-09-12

AI 速览

一句话:提出基于约束的程序修复方法,可修复持久内存的持久性与崩溃一致性错误并发现新修复策略。

持久内存(PM)编程中,程序可能违反持久性或崩溃一致性属性。本文提出一种基于约束的修复方法:以程序执行轨迹和被违反属性为输入,通过插入和重排 PM 指令生成修复建议。方法采用新的符号编码建模 PM 语义,避免显式枚举可能场景,从而高效探索大量修复。与当前最优方法相比,它不仅能修复持久性 bug,还能修复崩溃一致性 bug,并能发现新的修复策略而非依赖硬编码策略。在 Intel PMDK 库以及 Memcached、Recipe、Redis 等真实应用上的评估表明,该方法修复了全部 41 个已知 bug,而现有方法无法修复任何崩溃一致性 bug。

问题
持久内存应用中常存在持久性与崩溃一致性 bug,已有修复方法只能处理较简单的持久性 bug,难以处理崩溃一致性 bug,且依赖硬编码修复策略。
方法
以程序执行轨迹和违反属性为输入,通过约束与新型符号编码建模持久内存语义,搜索插入与重排 PM 指令的组合作为修复建议。
评估
在 Intel PMDK 基准程序以及 Memcached、Recipe、Redis 等真实应用上评估,修复了全部 41 个已知 bug;现有方法无法修复任何崩溃一致性 bug。
原文摘要(Abstract)

We propose a constraint based method for repairing bugs associated with the use of persistent memory (PM) in application software. Our method takes a program execution trace and the violated property as input and returns a suggested repair, which is a combination of inserting new PM instructions and reordering these instructions to eliminate the property violation. Compared with the state-of-the-art approach, our method has three advantages. First, it can repair both durability and crash consistency bugs whereas the state-of-the-art approach can only repair the relatively-simple durability bugs. Second, our method can discover new repair strategies instead of relying on repair strategies hard-coded into the repair tool. Third, our method uses a novel symbolic encoding to model PM semantics, which allows our symbolic analysis to be more efficient than the explicit enumeration of possible scenarios and thus explore a large number of repairs quickly. We have evaluated our method on benchmark programs from the well-known Intel PMDK library as well as real applications such as Memcached, Recipe, and Redis. The results show that our method can repair all of the 41 known bugs in these benchmarks, while the state-of-the-art approach cannot repair any of the crash consistency bugs.

链接与引用

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

BibTeX
@inproceedings{paperbot11452,
  title = {Constraint Based Program Repair for Persistent Memory Bugs},
  author = {Zunchen Huang and Chao Wang},
  booktitle = {ICSE},
  year = {2024},
  doi = {10.1145/3597503.3639204}
}