...
首页> 外文期刊>ACM transactions on software engineering and methodology >ConMem: Detecting Crash-Triggering Concurrency Bugs through an Effect-Oriented Approach
【24h】

ConMem: Detecting Crash-Triggering Concurrency Bugs through an Effect-Oriented Approach

机译:ConMem:通过以效果为导向的方法检测崩溃触发的并发错误

获取原文
获取原文并翻译 | 示例
           

摘要

Multicore technology is making concurrent programs increasingly pervasive. Unfortunately, it is difficult to deliver reliable concurrent programs, because of the huge and nondeterministic interleaving space. In reality, without the resources to thoroughly check the interleaving space, critical concurrency bugs can slip into production versions and cause failures in the field. Approaches to making the best use of the limited resources and exposing severe concurrency bugs before software release would be desirable. Unlike previous work that focuses on bugs caused by specific interleavings (e.g., races and atomicity violations), this article targets concurrency bugs that result in one type of severe effect: program crashes. Our study of the error-propagation process of real-world concurrency bugs reveals a common pattern (50% in our nondeadlock concurrency bug set) that is highly correlated with program crashes. We call this pattern concurrency-memory bugs: buggy interleavings directly cause memory bugs (NULL-pointer-dereferences, dangling-pointers, buffer-overflows, uninitialized-reads) on shared memory objects. Guided by this study, we built ConMem to monitor program execution, analyze memory accesses and synchronizations, and predictively detect these common and severe concurrency-memory bugs. We also built a validator,ConMem-v, to automatically prune false positives by enforcing potential bug-triggering interleavings. We evaluated ConMem using 7 open-source programs with 10 real-world concurrency bugs. ConMem detects more tested bugs (9 out of 10 bugs) than a lock-set-based race detector and an unserializable-interleaving detector, which detect 4 and 6 bugs, respectively, with a false-positive rate about one tenth of the compared tools. ConMem-v further prunes out all the false positives. ConMem has reasonable overhead suitable for development usage.
机译:多核技术使并发程序越来越普及。不幸的是,由于巨大且不确定的交织空间,很难交付可靠的并发程序。实际上,如果没有足够的资源来彻底检查交错空间,则严重的并发错误可能会渗入生产版本并在现场造成故障。需要一种在软件发布之前充分利用有限资源并暴露严重的并发错误的方法。与以前的工作着重于由特定交织(例如,种族和原子性违规)引起的错误不同,本文针对的是导致一种严重后果的并发错误:程序崩溃。我们对现实世界中并发错误的错误传播过程的研究揭示了一种常见的模式(在我们的非死锁并发错误集中有50%)与程序崩溃高度相关。我们称这种模式为并发内存错误:错误的交错直接导致共享内存对象上的内存错误(NULL指针解除引用,悬空指针,缓冲区溢出,未初始化读取)。在这项研究的指导下,我们构建了ConMem来监视程序执行,分析内存访问和同步,并预测性地检测这些常见和严重的并发存储错误。我们还构建了一个验证器ConMem-v,通过执行潜在的触发错误的交错来自动修剪误报。我们使用7个带有10个实际并发错误的开源程序评估了ConMem。与基于锁集的竞赛检测器和不可序列化的交错检测器相比,ConMem检测到更多经过测试的错误(10个错误中的9个),后者分别检测4个和6个错误,假阳性率约为所比较工具的十分之一。 。 ConMem-v进一步消除了所有误报。 ConMem具有适合开发用途的合理开销。

著录项

  • 来源
  • 作者单位

    Department University of Wisconsin - Madison, 1308 West Dayton Street, Madison, WI 53715-1149;

    Department University of Wisconsin - Madison, 1308 West Dayton Street, Madison, WI 53715-1149;

    Department University of Wisconsin - Madison, 1308 West Dayton Street, Madison, WI 53715-1149;

    Department University of Wisconsin - Madison, 1308 West Dayton Street, Madison, WI 53715-1149;

    Department University of Wisconsin - Madison, 1308 West Dayton Street, Madison, WI 53715-1149;

  • 收录信息
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

    Software testing; concurrency bugs;

    机译:软件测试;并发错误;

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号