paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Who goes first? detecting go concurrency bugs via message reordering

谁先执行?通过消息重排序检测 Go 并发缺陷
ASPLOS Proceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems2022匹配度 2/10 · 该论文研究 Go 语言中 channel 相关并发缺陷的检测,属于程序分析与软件测试领域,但聚焦并发/消息重排序,与用户画像核心关注的静态分析×AI/Agent、浮点程序分析、贝叶斯程序分析均无直接关联。虽然属于 PL/SE 方向,但研究内容和方法与用户当前追踪的问题匹配度很低。引用 21 inbox
Ziheng Liu, Shihao Xia, Yu Liang, Linhai Song, Hong Hu
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:提出通过消息重排序来检测 Go 程序中 channel 相关并发缺陷的方法。

Go 语言通过 goroutine 和 channel 支持并发编程,鼓励显式消息传递以减少并发错误。然而,近期研究发现 channel 相关并发缺陷在 Go 程序中仍很常见,严重影响程序可靠性。针对这一问题,本文提出通过消息重排序来检测 Go 并发缺陷。该方法的核心思想是系统性地改变 goroutine 间消息传递的顺序,以暴露因消息交错而触发的错误。摘要中未给出具体评估细节,但该工作针对真实 Go 程序中的 channel 并发缺陷进行检测。

问题
Go 程序中 channel 相关的并发缺陷仍然普遍,威胁关键基础设施软件的可靠性。
方法
通过系统性地对 goroutine 间的消息传递进行重排序,来检测由消息交错引发的 Go 并发缺陷。
评估
摘要未说明评估方式与结果;论文标题和背景暗示其针对真实 Go 程序的 channel 并发缺陷进行检测。
原文摘要(Abstract)

Go is a young programming language invented to build safe and efficient concurrent programs. It provides goroutines as lightweight threads and channels for inter-goroutine communication. Programmers are encouraged to explicitly pass messages through channels to connect goroutines, with the purpose of reducing the chance of making programming mistakes and introducing concurrency bugs. Go is one of the most beloved programming languages and has already been used to build many critical infrastructure software systems in the data-center environment. However, a recent study shows that channel-related concurrency bugs are still common in Go programs, severely hurting the reliability of the programs.

链接与引用

DOI 原文 · DBLP

BibTeX
@inproceedings{LiuXLSH22,
  title = {Who goes first? detecting go concurrency bugs via message reordering},
  author = {Ziheng Liu and Shihao Xia and Yu Liang and Linhai Song and Hong Hu},
  booktitle = {ASPLOS},
  year = {2022},
  doi = {10.1145/3503222.3507753}
}