paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Dynamic Partial Deadlock Detection and Recovery via Garbage Collection

基于垃圾回收的动态部分死锁检测与恢复
ASPLOS Proceedings of the 30th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 22025匹配度 2/10 · 论文属于 PL 运行时、垃圾回收与并发程序动态缺陷检测,虽有工业落地价值,但未涉及静态分析、LLM/Agent、浮点程序分析或贝叶斯程序分析,与用户核心研究方向交集很少。引用 3 inbox
Georgian-Vlad Saioc, I-Ting Angelina Lee, Anders Møller, Milind Chabbi
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:提出利用垃圾回收标记阶段动态检测并自动恢复消息传递程序中的部分死锁,以缓解内存泄漏。

并发消息传递程序中的部分死锁会导致长期运行系统内存泄漏,Go 因支持消息传递且易于创建轻量并发而尤其易受影响。论文提出一种动态技术:在垃圾回收器的标记阶段可靠地近似程序活性,从而检测部分死锁,并自动修复、减轻其对内存的影响。作者将该方法实现为 Go 运行时垃圾回收器扩展 GOLF,并在微基准、大规模工业代码库测试套件与 Uber 真实服务上评估。初步结果显示,该方法在微基准和大规模工业代码库测试套件中分别检测出 94% 与 50% 的部分死锁;在 Uber 服务 24 小时部署中检测到 252 个由三个编程错误导致的部分死锁。

问题
并发消息传递程序难以确保不存在部分死锁,而部分死锁会造成长期运行系统严重内存泄漏,Go 尤其易受此问题影响。
方法
利用垃圾回收器的标记阶段对程序活性进行可靠近似,动态检测部分死锁,并自动修复以减轻内存影响;实现为 Go 运行时 GC 扩展 GOLF。
评估
在微基准、大规模工业代码库测试套件上实验,并部署到 Uber 真实服务 24 小时;分别检测 94% 和 50% 的部分死锁,真实部署检测到 252 个部分死锁。
原文摘要(Abstract)

A challenge of writing concurrent message-passing programs is ensuring the absence of partial deadlocks, which can cause severe memory leaks in long-running systems. The Go programming language is particularly susceptible to this problem due to its support of message passing and ease of lightweight concurrency creation. We propose a novel dynamic technique to detect partial deadlocks by soundly approximating liveness using the garbage collector's marking phase. The approach allows systems to not only detect, but also automatically redress partial deadlocks and alleviate their impact on memory. We implement the approach in the tool GOLF, as an extension to the garbage collector of the Go runtime system and evaluate its effectiveness in a series of experiments. Preliminary results show that the approach is effective at detecting 94% and 50% of partial deadlocks in a series of microbenchmarks and the test suites of a large-scale industrial codebase, respectively. Furthermore, we deployed golf on a real service used by Uber, and over a period of 24 hours, effectively detected 252 partial deadlocks caused by three programming errors.

链接与引用

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

BibTeX
@inproceedings{SaiocLMC25,
  title = {Dynamic Partial Deadlock Detection and Recovery via Garbage Collection},
  author = {Georgian-Vlad Saioc and I-Ting Angelina Lee and Anders Møller and Milind Chabbi},
  booktitle = {ASPLOS},
  year = {2025},
  doi = {10.1145/3676641.3715990}
}