...
首页> 外文期刊>ACM SIGPLAN Notices: A Monthly Publication of the Special Interest Group on Programming Languages >ConAir: Featherweight Concurrency Bug Recovery via Single-Threaded Idempotent Execution
【24h】

ConAir: Featherweight Concurrency Bug Recovery via Single-Threaded Idempotent Execution

机译:ConAir:通过单线程幂等执行的轻量级并发错误恢复

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

摘要

Many concurrency bugs are hidden in deployed software and cause severe failures for end-users. When they finally manifest and become known by developers, they are difficult to fix correctly. To support end-users, we need techniques that help software survive hidden concurrency bugs during production runs. To help developers, we need techniques that fix exposed concurrency bugs. The state-of-the-art techniques on concurrency-bug fixing and survival only satisfy a subset of four important properties: compatibility, correctness, generality, and performance.We aim to develop a system that satisfies all of these four properties. To achieve this goal, we leverage two observations: (1) rolling back a single thread is sufficient to recover from most concurrency-bug failures; (2) reexecuting an idempotent region, which requires no memory-state checkpoint, is sufficient to recover from many concurrency-bug failures. Our system ConAir includes a static analysis component that automatically identifies potential failure sites, a static analysis component that automatically identifies the idempotent code regions around every failure site, and a code-transformation component that inserts rollback-recovery code around the identified idempotent regions. We evaluated ConAir on 10 real-world concurrency bugs in widely used C/C++ open-source applications. These bugs cover different types of failure symptoms and root causes. Quantitatively, ConAir helps software survive failures caused by all of these bugs with negligible run-time overhead (<1%) and short recovery time. Qualitatively, ConAir can help recover from failures caused by unknown bugs. It guarantees that program semantics remain unchanged and requires no change to operating systems or hardware.
机译:许多并发错误都隐藏在已部署的软件中,并且会给最终用户带来严重的故障。当它们最终体现出来并为开发人员所熟知时,很难正确修复它们。为了支持最终用户,我们需要可以帮助软件在生产运行过程中幸免于隐藏的并发错误的技术。为了帮助开发人员,我们需要修复暴露的并发错误的技术。并发错误修复和生存的最新技术仅满足以下四个重要属性的一部分:兼容性,正确性,通用性和性能。我们旨在开发一个满足这四个属性的系统。为了实现此目标,我们利用两个观察结果:(1)回滚单个线程足以从大多数并发错误中恢复; (2)重新执行幂等区域,不需要内存状态检查点,足以从许多并发错误故障中恢复。我们的系统ConAir包括一个自动分析潜在故障部位的静态分析组件,一个自动识别每个故障部位周围的幂等代码区域的静态分析组件以及一个在识别出的幂等区域周围插入回滚恢复代码的代码转换组件。我们在广泛使用的C / C ++开源应用程序中对10个现实世界中的并发性错误进行了评估。这些错误涵盖了不同类型的故障症状和根本原因。从数量上讲,ConAir可以以可忽略的运行时间开销(<1%)和较短的恢复时间来帮助软件解决由所有这些错误引起的故障。从质量上讲,ConAir可以帮助从未知错误导致的故障中恢复。它保证程序语义保持不变,并且不需要更改操作系统或硬件。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号