Abstract

Configuration errors remain a major cause of system failures and service outages. One promising approach to identify configuration errors automatically is to learn common usage patterns (and anti-patterns) using data-driven methods. However, existing data-driven learning approaches analyze only simple configurations (e.g., those with no hierarchical structure), identify only simple types of issues (e.g., type errors), or require extensive domain-specific tuning. In this paper, we present Diffy, the first push-button configuration analyzer that detects likely bugs in structured configurations. From example configurations, Diffy learns a common template, with “holes” that capture their variation. It then applies unsupervised learning to identify anomalous template parameters as likely bugs. We evaluate Diffy on a large cloud provider’s wide-area network, an operational 5G network testbed, and MySQL configurations, demonstrating its versatility, performance, and accuracy. During Diffy’s development, it caught and prevented a bug in a configuration timer value that had previously caused an outage for the cloud provider.

BibTeX Citation

@article{10.1145/3656385,
author = {Kakarla, Siva Kesava Reddy and Yan, Francis Y. and Beckett, Ryan},
title = {Diffy: Data-Driven Bug Finding for Configurations},
year = {2024},
issue_date = {June 2024},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {8},
number = {PLDI},
url = {https://doi.org/10.1145/3656385},
doi = {10.1145/3656385},
journal = {Proc. ACM Program. Lang.},
month = {jun},
articleno = {155},
numpages = {24},
keywords = {anomaly detection, configuration bug finding, template synthesis}
}