STAD: Stack Trace Based Automatic Software Misconfiguration Diagnosis Via Value Dependency Graph

Yuan Liu,Xi Wang,Lintao Xian,Zhongwen Guo
DOI: https://doi.org/10.1007/978-3-030-30923-7_8
2019-01-01
Abstract:Configurable software allows users to customize software behaviors through configurations. However, software misconfigurations that lead to the hard-to-diagnose system crash failures could inflict enormous harm to users and should be diagnosed with a high priority. To address this problem, we present a systematic approach (and its tool implementation, called STAD) to diagnosing misconfigurations based on static code analysis. Our approach analyzes the value dependency between variables obtained by exploring the stack trace, generates the value dependency graph (VDG), recommends the root cause of a misconfiguration via the VDG, and utilizes the correlation between configuration options to improve our recommendation results. There are two advantages compared with existing approaches: STAD does not require software crash reproduction, and users do not need to provide configuration options and their option read points (i.e. the statements that access the values of configuration options). We evaluated STAD on 8 misconfigurations from JChord built on Java. STAD can successfully diagnose all misconfigurations with less average number of false positives compared with existing approaches. In addition, STAD runs in less than one minute for each misconfiguration, making debugging more efficient.
What problem does this paper attempt to address?