WATCHER: in-situ failure diagnosis

WATCHER: in-situ failure diagnosis
复制标题

DOI:
10.1145/3428211
复制
发表时间:
2020-11
影响因子:
--
通讯作者:
Hongyu Liu;Sam Silvestro;X. Zhang;Jian Huang;Tongping Liu
Hongyu Liu;Sam Silvestro;X. Zhang;Jian Huang;Tongping Liu
中科院分区:
--
文献类型:
--
作者:
Hongyu Liu;Sam Silvestro;X. Zhang;Jian Huang;Tongping Liu

文献摘要

相似文献

诊断软件故障很重要,但也极具挑战性。现有的工作要么需要大量的手工工作,造成严重的隐私问题(对于生产中的系统),要么不能为bug修复报告足够的信息。本文提出了一种名为WATCHER的新型诊断系统,它可以在故障过程中(“原位”)查明程序故障的根本原因,从而消除了对隐私的担忧。它结合了相同的记录和回放、二进制分析、动态分析和硬件支持,在没有人工参与的情况下执行诊断。进一步提出了两种优化方法来减少诊断时间,并利用控制流劫持进行故障诊断。WATCHER可以很容易地部署,不需要自定义硬件或操作系统,程序修改,或重新编译。我们用实际部署软件中的24个程序失败来评估WATCHER,包括大型应用程序,如Memcached, SQLite和OpenJPEG。实验结果表明,WATCHER可以在几秒钟内准确地识别出根本原因。
Diagnosing software failures is important but notoriously challenging. Existing work either requires extensive manual effort, imposing a serious privacy concern (for in-production systems), or cannot report sufficient information for bug fixes. This paper presents a novel diagnosis system, named WATCHER, that can pinpoint root causes of program failures within the failing process ("in-situ"), eliminating the privacy concern. It combines identical record-and-replay, binary analysis, dynamic analysis, and hardware support together to perform the diagnosis without human involvement. It further proposes two optimizations to reduce the diagnosis time and diagnose failures with control flow hijacks. WATCHER can be easily deployed, without requiring custom hardware or operating system, program modification, or recompilation. We evaluate WATCHER with 24 program failures in real-world deployed software, including large-scale applications, such as Memcached, SQLite, and OpenJPEG. Experimental results show that WATCHER can accurately identify the root causes in only a few seconds.