Puppet is a popular computer system configuration management tool. It provides abstractions that model system resources, enabling administrators to set up their computer systems. Its use suffers from two potential pitfalls. First, if ordering constraints are not correctly specified whenever a Puppet resource depends on another, the non-deterministic application of resources can lead to race conditions and consequent failures. Second, if a service is not tied to its resources (through the notification construct), the system may operate in a stale state whenever a resource gets modified and the update is not propagated to the corresponding service. 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 resources with the file system. By analyzing these interactions we identify (1) resources that are related to each other (e.g., operate on the same file), and (2) resources that should act as notifiers so that changes are correctly propagated. We then check the relationships from the trace’s analysis against the program’s dependency graph: a representation containing all the ordering constraints and notifications declared in the program. If a mismatch is detected, our system reports a potential fault.
We have evaluated our method on a large set of popular Puppet modules, and discovered 66 previously unknown issues in 30 of them. Benchmarking further shows that our approach can analyze in seconds real-world configurations with a magnitude measured in thousands of lines and millions of system calls.
Wed 8 Jul Times are displayed in time zone: (UTC) Coordinated Universal Time change
16:05 - 17:05: A12-TestingPaper Presentations / Journal First / New Ideas and Emerging Results / Demonstrations / Technical Papers at Silla Chair(s): Sasa MisailovicUniversity of Illinois at Urbana-Champaign | |||
16:05 - 16:17 Talk | Practical Fault Detection in Puppet Programs Technical Papers Thodoris SotiropoulosAthens University of Economics and Business, Dimitris MitropoulosAthens University of Economics and Business, Diomidis SpinellisAthens University of Economics and Business | ||
16:17 - 16:25 Talk | Empirical Assessment of Multimorphic TestingJ1 Journal First Paul TemplePReCISE, NaDi, UNamur, Mathieu Acher(Univ Rennes, Inria, IRISA), Jean-Marc JézéquelUniv Rennes - IRISA | ||
16:25 - 16:28 Talk | RTj: a Java framework for detecting and refactoring rotten green test casesDemo Demonstrations Matias MartinezUniversité Polytechnique Hauts-de-France, Anne EtienUniversité de Lille, CNRS, Inria, Centrale Lille, UMR 9189 –CRIStAL, Stéphane Ducasse INRIA Lille, Christopher FuhrmanÉcole de technologie supérieure Pre-print Media Attached | ||
16:28 - 16:34 Talk | A Container-Based Infrastructure for Fuzzy-Driven Root Causing of Flaky TestsNIER New Ideas and Emerging Results Valerio TerragniUniversità della Svizzera Italiana, Pasquale SalzaUniversity of Zurich, Filomena FerrucciUniversity of Salerno Pre-print Media Attached | ||
16:34 - 16:46 Talk | Learning from, Understanding, and Supporting DevOps Artifacts for Docker Technical Papers Jordan HenkelUniversity of Wisconsin–Madison, Christian BirdMicrosoft Research, Shuvendu LahiriMicrosoft Research, Thomas RepsUniversity of Wisconsin-Madison, USA | ||
16:46 - 16:54 Talk | Improving Change Prediction Models with Code Smell-Related InformationJ1 Journal First Gemma CatolinoDelft University of Technology, Fabio PalombaUniversity of Salerno, Francesca Arcelli FontanaUniversity of Milano-Bicocca, Andrea De LuciaUniversity of Salerno, Andy ZaidmanTU Delft, Filomena FerrucciUniversity of Salerno DOI Pre-print | ||
16:54 - 16:57 Talk | SMRL: A Metamorphic Security Testing Tool for Web SystemsDemo Demonstrations Phu X. MaiUniversity of Luxembourg, Arda GoknilSnT, University of Luxembourg, Fabrizio PastoreUniversity of Luxembourg, Lionel C. BriandSnT Centre/University of Luxembourg |