一句话:首次对六个大规模云系统的210个异常相关缺陷进行实证研究,并构建静态分析工具DIET。
本文针对云系统中异常机制误用导致的异常相关缺陷(eBugs)展开实证研究。作者从 Cassandra、HBase、HDFS、Hadoop MapReduce、YARN 和 ZooKeeper 六个广泛部署的云系统中收集 210 个 eBugs,分析其触发条件、根因、影响及相互关系。这是首个聚焦云系统 eBugs 及触发条件的研究。结果表明问题严重:74% 的 eBugs 影响系统可用性或完整性;同时缺陷可通过测试暴露:54% 由网络错误等非语义条件触发,40% 可在简单系统状态下模拟触发条件复现。基于触发条件对检测 eBugs 的价值,作者实现静态分析工具 DIET,并在这些系统最新版本中报告 31 个缺陷与坏实践,其中 23 个被开发者确认为此前未知。
Exception mechanism is widely used in cloud systems. This is mainly because it separates the error handling code from main business logic. However, the huge space of potential error conditions and the sophisticated logic of cloud systems present a big hurdle to the correct use of exception mechanism. As a result, mistakes in the exception use may lead to severe consequences, such as system downtime and data loss. To address this issue, the communities direly need a better understanding of the exception-related bugs, i.e., eBugs, which are caused by the incorrect use of exception mechanism, in cloud systems. In this paper, we present a comprehensive study on 210 eBugs from six widely-deployed cloud systems, including Cassandra, HBase, HDFS, Hadoop MapReduce, YARN, and ZooKeeper. For all the studied eBugs, we analyze their triggering conditions, root causes, bug impacts, and their relations. To the best of our knowledge, this is the first study on eBugs in cloud systems, and the first one that focuses on triggering conditions. We find that eBugs are severe in cloud systems: 74% of our studied eBugs affect system availability or integrity. Luckily, exposing eBugs through testing is possible: 54% of the eBugs are triggered by non-semantic conditions, such as network errors; 40% of the eBugs can be triggered by simulating the triggering conditions at simple system states. Furthermore, we find that the triggering conditions are useful for detecting eBugs. Based on such relevant findings, we build a static analysis tool, called DIET, and apply it to the latest versions of the studied systems. Our results show that DIET reports 31 bugs and bad practices, and 23 of them are confirmed by the developers as "previously-unknown" ones.
DOI 原文 ·
@inproceedings{paperbot5236,
title = {Understanding Exception-Related Bugs in Large-Scale Cloud Systems},
author = {Haicheng Chen and Wensheng Dou and Yanyan Jiang and Feng Qin},
booktitle = {ASE},
year = {2019},
doi = {10.1109/ase.2019.00040}
}