Detecting Missing Dependencies and Notifiers in Puppet Programs
Thodoris Sotiropoulos, Dimitris Mitropoulos, Diomidis Spinellis

TL;DR
This paper presents a formal analysis approach to detect missing dependencies and notifiers in Puppet programs, improving reliability by identifying potential configuration faults through trace analysis and dependency graph comparison.
Contribution
It introduces a formal model for Puppet trace analysis to automatically identify configuration issues related to dependencies and notifications.
Findings
Discovered 57 previously unknown issues in Puppet modules
Analyzed real-world configurations with thousands of lines in minutes
Effectively detects configuration faults affecting system reliability
Abstract
Puppet is a popular computer system configuration management tool. It provides abstractions that enable administrators to setup their computer systems declaratively. Its use suffers from two potential pitfalls. First, if ordering constraints are not specified whenever an abstraction depends on another, the non-deterministic application of abstractions can lead to race conditions. Second, if a service is not tied to its resources through notification constructs, the system may operate in a stale state whenever a resource gets modified. Such faults can degrade a computing infrastructure's availability and functionality. We have developed an approach that identifies these issues through the analysis of a Puppet program and its system call trace. Specifically, we present a formal model for traces, which allows us to capture the interactions of Puppet abstractions with the file system. By…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAdvanced Malware Detection Techniques · Software System Performance and Reliability · Software Engineering Research
