一句话:提出 RepTrace,基于系统调用追踪的因果分析定位不可复现构建的根因命令与修补文件。
不可复现构建的根因定位对软件维护重要但困难,受限于构建过程运行时追踪有限和环境多样。本文提出 RepTrace,利用系统调用追踪统一接口在不同环境中监控构建命令,并通过追踪分析定位根因。它从系统调用追踪做因果分析,以不一致构建产物为起点,按读写依赖和父子进程依赖构建依赖图并搜索致因进程。为处理噪声依赖与不确定父子关系,RepTrace 用多次构建差分分析缩小读写依赖搜索空间,并用运行时值相似度过滤父子依赖。真实软件包评估显示,其 Top-10 根因命令与待修补文件的识别准确率分别达 90.00% 和 90.56%。
Localization of the root causes for unreproducible builds during software maintenance is an important yet challenging task, primarily due to limited runtime traces from build processes and high diversity of build environments. To address these challenges, in this paper, we propose RepTrace, a framework that leverages the uniform interfaces of system call tracing for monitoring executed build commands in diverse build environments and identifies the root causes for unreproducible builds by analyzing the system call traces of the executed build commands. Specifically, from the collected system call traces, RepTrace performs causality analysis to build a dependency graph starting from an inconsistent build artifact (across two builds) via two types of dependencies: read/write dependencies among processes and parent/child process dependencies, and searches the graph to find the processes that result in the inconsistencies. To address the challenges of massive noisy dependencies and uncertain parent/child dependencies, RepTrace includes two novel techniques: (1) using differential analysis on multiple builds to reduce the search space of read/write dependencies, and (2) computing similarity of the runtime values to filter out noisy parent/child process dependencies. The evaluation results of RepTrace over a set of real-world software packages show that RepTrace effectively finds not only the root cause commands responsible for the unreproducible builds, but also the files to patch for addressing the unreproducible issues. Among its Top-10 identified commands and files, RepTrace achieves high accuracy rate of 90.00% and 90.56% in identifying the root causes, respectively.
DOI 原文 ·
@inproceedings{paperbot5286,
title = {Root Cause Localization for Unreproducible Builds via Causality Analysis Over System Call Tracing},
author = {Zhilei Ren and Changlin Liu and Xusheng Xiao and He Jiang and Tao Xie},
booktitle = {ASE},
year = {2019},
doi = {10.1109/ase.2019.00056}
}