Using Causality to Diagnose Configuration Bugs
We present a novel method for diagnosing config- uration management errors. Our proposed approach de- duces the state of a buggy computer by running predi- cates that test system correctness and comparing the re- sulting execution to that generated by running the same predicates on a reference computer. Our approach gen- erates signatures that represent the execution path of a predicate by recording the causal dependencies of its ex- ecution. Our results show that comparisons based on dependency sets significantly outperform comparisons based on predicate success or failure, uniquely identi- fying the correct bug 86-100% of the time. In the re- maining cases, the dependency set method identifies the correct bug as one of two equally likely bugs.