一句话:SCMiner 利用数据挖掘与统计异常检测,从生产环境系统调用日志中在线定位系统级并发故障及其对应函数。
生产环境中并发故障的定位十分困难:失败时的用户输入、文件内容与线程调度等现场数据往往缺失,难以复现;现有技术通常依赖多次失败执行;可用运行时数据有限,使缺陷位置搜索困难;而系统级并发故障还常涉及多进程或软件信号等事件处理器,超出面向进程内(线程级)故障的现有诊断工具的能力范围。为此,作者提出 SCMiner,一种实用的在线缺陷诊断工具,仅依赖默认系统审计工具收集的日志来理解系统级并发故障的成因。SCMiner 无需离线复现缺陷,不要求在生产系统上做代码插桩,也不假设存在多次失败执行。其流程为:先收集系统调用轨迹,再通过数据挖掘与统计异常检测技术识别诱发失败的系统调用序列,最后把每条异常序列映射到具体的应用函数。作者在 19 个真实基准上开展实证研究,结果表明 SCMiner 在定位系统级并发故障上既有效又高效。
Localizing concurrency faults that occur in production is hard because, (1) detailed field data, such as user input, file content and interleaving schedule, may not be available to developers to reproduce the failure; (2) it is often impractical to assume the availability of multiple failing executions to localize the faults using existing techniques; (3) it is challenging to search for buggy locations in an application given limited runtime data; and, (4) concurrency failures at the system level often involve multiple processes or event handlers (e.g., software signals), which can not be handled by existing tools for diagnosing intra-process(thread-level) failures. To address these problems, we present SCMiner, a practical online bug diagnosis tool to help developers understand how a system-level concurrency fault happens based on the logs collected by the default system audit tools. SCMiner achieves online bug diagnosis to obviate the need for offline bug reproduction. SCMiner does not require code instrumentation on the production system or rely on the assumption of the availability of multiple failing executions. Specifically, after the system call traces are collected, SCMiner uses data mining and statistical anomaly detection techniques to identify the failure-inducing system call sequences. It then maps each abnormal sequence to specific application functions. We have conducted an empirical study on 19 real-world benchmarks. The results show that SCMiner is both effective and efficient at localizing system-level concurrency faults.
DOI 原文 ·
@inproceedings{paperbot5234,
title = {SCMiner: Localizing System-Level Concurrency Faults from Large System Call Traces},
author = {Tarannum Shaila Zaman and Xue Han and Tingting Yu},
booktitle = {ASE},
year = {2019},
doi = {10.1109/ase.2019.00055}
}