Aaron Weiss

dblp:55/10657 · DBLP profile ↗
← Back
2ranked-venue papers
1as first author
0since 2021 · last 2017
0000-0002-3531-4144ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 2 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
2 papers
Software maintenance and evolution · 48% Debugging and program repair · 24% Program analysis · 21%
Computer networks
1 paper
Network management and operations · 100%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Performance modeling and evaluation · 100%

Topics — the 7 heaviest of 7, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Software maintenance and evolution › software configuration management
configuration repair
0.312017
Tortoise: interactive system configuration repair · ASE 2017
Software maintenance and evolution
software configuration
0.312017
Tortoise: interactive system configuration repair · ASE 2017
Debugging and program repair › automated program repair
synthesis repair
0.312017
Tortoise: interactive system configuration repair · ASE 2017
Network management and operations
configuration verification
0.212016
Rehearsal: a configuration verification tool for puppet · PLDI 2016
Program analysis › concurrent program analysis
determinacy analysis
0.212016
Rehearsal: a configuration verification tool for puppet · PLDI 2016
Operating systems
system administration
0.112017
Tortoise: interactive system configuration repair · ASE 2017
Performance modeling and evaluation
system configuration
0.112016
Rehearsal: a configuration verification tool for puppet · PLDI 2016

Methods — techniques the papers use, named apart from their topics

formal semantics · 0.8SMT solving · 0.8program synthesis · 0.3configuration language analysis · 0.3
YearPublicationVenuePosition
2017 Tortoise: interactive system configuration repair
abstract
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% of the time and the human-equivalent repair is ranked 1.31 on average.
Aaron Weiss, Arjun Guha, Yuriy Brun
ASE1
2016 Rehearsal: a configuration verification tool for puppet
abstract
Large-scale data centers and cloud computing have turned system configuration into a challenging problem. Several widely-publicized outages have been blamed not on software bugs, but on configuration bugs. To cope, thousands of organizations use system configuration languages to manage their computing infrastructure. Of these, Puppet is the most widely used with thousands of paying customers and many more open-source users. The heart of Puppet is a domain-specific language that describes the state of a system. Puppet already performs some basic static checks, but they only prevent a narrow range of errors. Furthermore, testing is ineffective because many errors are only triggered under specific machine states that are difficult to predict and reproduce. With several examples, we show that a key problem with Puppet is that configurations can be non-deterministic. This paper presents Rehearsal, a verification tool for Puppet configurations. Rehearsal implements a sound, complete, and scalable determinacy analysis for Puppet. To develop it, we (1) present a formal semantics for Puppet, (2) use several analyses to shrink our models to a tractable size, and (3) frame determinism-checking as decidable formulas for an SMT solver. Rehearsal then leverages the determinacy analysis to check other important properties, such as idempotency. Finally, we apply Rehearsal to several real-world Puppet configurations.
Rian Shambaugh, Aaron Weiss, Arjun Guha
PLDI2