ConfGuru - A System for Fully Automated Debugging of Configuration Errors
Artur Andrzejak, Matthias Iacsa · 2018
Software applications routinely offer configuration settings to adapt them to specific deployment requirements. The number of available configuration options and their dependencies increase the likelihood of introducing configuration mistakes, with costly faults typically manifesting in a production environment. Automated diagnosis of configuration errors can help here, yet the practical value and acceptance of the proposed solutions depend - besides sufficient accuracy - on satisfying some non-functional requirements. These include: (i) low intrusiveness (i.e. little runtime data/instrumentation), (ii) full automation of the diagnosis process, and (iii) fast computation of a diagnosis. In this work we propose ConfGuru, an approach and a tool which attempts to fulfill all three of these requirements. ConfGuru complements and improves upon ConfDoctor, our previous (semi-automated) approach for diagnosis of configuration errors. ConfGuru adds a fast static analysis approach to identify all code locations where option values are read (so-called Option Read Points (ORPs)) in a targeted application. Previously, these locations needed to be found manually, severely limiting adoption of ConfDoctor for new targets. Furthermore, due to algorithmic optimizations we can reduce the total time for computing a diagnosis to below a minute, and streamline the analysis process. Our evaluation shows that ConfGuru can diagnose configuration errors and extract ORPs from a variety of applications with an accuracy matching previous semi-automated approaches. Simultaneously, it offers fast adaptation to new target applications and well as full process automation, and has low response time. This makes ConfGuru suitable as a practical configuration error diagnosis tool or a service for real-world scenarios.