Software misconfigurations are time-consuming and frustrating to troubleshoot. The focus of this thesis is to reduce the effort needed to troubleshoot software misconfigurations by automating the diagnosis process.The core idea of this thesis is to automate misconfiguration diagnosis by using causality analysis to determine specific inputs to an application that cause that application to produce an undesired output. This thesis shows that we can leverage these causal relationships to determine the root cause of misconfigurations. Further, we demonstrate that it is feasible to automatically infer such relations by analyzing the execution of the application and the interactions between the application and the operating system. Based on the idea of causality analysis, we developed three diagnosis tools: SigConf, ConfAid, and X-ray.The focus of SigConf is on misconfigurations that are known, i.e., the problem has been previously reported to a misconfiguration database. Thus, the problem of diagnosing an unknown bug on a sick computer can be reduced to identifying that the sick computer is in a state similar to a buggy state in the database. SigConf deduces the state of the sick computer by running predicates and generating signatures based on the execution path of each predicate. SigConf compares these signatures against the signatures in the database to diagnose the misconfiguration.Compared to SigConf, ConfAid considers a narrower set of root causes, i.e. tokens in the configuration files. However, it does not require outside help to diagnose problems, and it can diagnose previously unknown misconfigurations. As the program executes, ConfAid instruments the program binaries and uses dynamic information flow analysis to extract causal dependencies introduced through data and control flow. It then uses these dependencies to link an erroneous behavior to specific configuration tokens.X-ray tackles misconfigurations that lead to performance problems. The goal of X-ray is to not only determine what events happened during a performance anomaly, but also infer why these events occurred. X-ray introduces the technique of performance summarization to diagnose misconfigurations. Performance summarization attributes performance costs to fine-grained events, and then uses dynamic information flow to determine the root causes for the execution of each event.
【 预 览 】
附件列表
Files
Size
Format
View
Improving Software Configuration Troubleshooting with Causality Analysis.