Tortoise: Interactive System Configuration Repair

09/15/2017
by   Aaron Weiss, et al.
0

System configuration languages provide powerful abstractions that simplify managing large-scale, networked systems. Thousands of organizations now use configuration languages, such as Puppet. However, specifications written in configuration languages can have bugs and the shell remains the simplest way to debug a misconfigured system. Unfortunately, it is unsafe to use the shell to fix problems when a system configuration language is in use: a fix applied from the shell may cause the system to drift from the state specified by the configuration language. Thus, despite their advantages, configuration languages force system administrators to give up the simplicity and familiarity of the shell. This paper presents a synthesis-based technique that allows administrators to use configuration languages and the shell in harmony. Administrators can fix errors using the shell and the technique automatically repairs the higher-level specification written in the configuration language. The approach (1) produces repairs that are consistent with the fix made using the shell; (2) produces repairs that are maintainable by minimizing edits made to the original specification; (3) ranks and presents multiple repairs when relevant; and (4) supports all shells the administrator may wish to use. We implement our technique for Puppet, a widely used system configuration language, and evaluate it on a suite of benchmarks under 42 repair scenarios. The top-ranked repair is selected by humans 76 1.31 on average.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
02/27/2021

Bounded Exhaustive Search of Alloy Specification Repairs

The rising popularity of declarative languages and the hard to debug nat...
research
02/02/2023

Fixing Hardware Security Bugs with Large Language Models

Novel AI-based code-writing Large Language Models (LLMs) such as OpenAI'...
research
11/02/2017

Ocasta: Clustering Configuration Settings For Error Recovery

Effective machine-aided diagnosis and repair of configuration errors con...
research
03/22/2022

Dozer: Migrating Shell Commands to Ansible Modules via Execution Profiling and Synthesis

Software developers frequently use the system shell to perform configura...
research
09/12/2023

Online Name-Based Navigation for Software Meta-languages

Software language design and implementation often involve specifications...
research
07/31/2019

Aquarium: Cassiopea and Alewife Languages

This technical report describes two of the domain specific languages use...
research
06/26/2018

Treo: Textual Syntax for Reo Connectors

Reo is an interaction-centric model of concurrency for compositional spe...

Please sign up or login with your details

Forgot password? Click here to reset