1 AutoBash: Improving Configuration Management with Operating System Causality Analysis Ya-Yunn Su, Mona Attariyan, and Jason Flinn University of Michigan.

Slides:



Advertisements
Similar presentations
Enabling Speculative Parallelization via Merge Semantics in STMs Kaushik Ravichandran Santosh Pande College.
Advertisements

1 Bug Isolation via Remote Program Sampling Ben LiblitAlex Aiken Alice X. ZhengMichael Jordan Presented By : Arpita Gandhi.
Rethink the Sync Ed Nightingale Kaushik Veeraraghavan Peter Chen Jason Flinn University of Michigan.
The GridBee Web Computing Framework Attila Szarvas BME IK 2012.
Utilizing the GDB debugger to analyze programs Background and application.
Software Delivery. Software Delivery Management  Managing Requirements and Changes  Managing Resources  Managing Configuration  Managing Defects 
Module 20 Troubleshooting Common SQL Server 2008 R2 Administrative Issues.
Lesson 10-Controlling User Processes. Overview Managing and processing processes. Managing jobs. Exiting/quitting when jobs have been stopped.
Validata Release Coordinator Accelerated application delivery through automated end-to-end release management.
Browsers and Servers CGI Processing Model ( Common Gateway Interface ) © Norman White, 2013.
CS-502 Fall 2006Project 1, Fork1 Programming Project 1 – Fork.
Project 1CS-3013 A-term Programming Project #1 Forking Processes Due Tuesday, September 8, 11:59 PM.
Linux+ Guide to Linux Certification, Second Edition
A Status Report on Research in Transparent Informed Prefetching (TIP) Presented by Hsu Hao Chen.
Principles of Information Systems, Sixth Edition 1 Systems Investigation and Analysis Chapter 12.
Project: automated program tester for programs submitted to an ACM-like programming contest General Idea: When a program is submitted to the contest, a.
IntroductionCS-3013 C-term Programming Project #1 Forking Processes Due Thursday, January 24, 6:00 PM.
AFID: An Automated Fault Identification Tool Alex Edwards Sean Tucker Sébastien Worms Rahul Vaidya Brian Demsky.
The Basic Tools Presented by: Robert E., & Jonathan Chase.
Oracle 11g Real Application Testing: Avoiding Performance Regressions with SQL Performance Analyzer Khaled Yagoub, Pete Belknap, Benoit Dageville, Karl.
Reproducible Environment for Scientific Applications (Lab session) Tak-Lon (Stephen) Wu.
Operating System Support for Application-Specific Speculation Benjamin Wester Peter Chen and Jason Flinn University of Michigan.
Computer Programming and Basic Software Engineering 4. Basic Software Engineering 1 Writing a Good Program 4. Basic Software Engineering.
QWise software engineering – refactored! Testing, testing A first-look at the new testing capabilities in Visual Studio 2010 Mathias Olausson.
Manage Engine: Q Engine. What is it?  Tool developed by Manage Engine that allows one to test web applications using a variety of different tests to.
QuFiles: The right file at the right time Kaushik Veeraraghavan Jason Flinn Ed Nightingale * Brian Noble University of Michigan *Microsoft Research (Redmond)
Software Testing Life Cycle
Eric Keller, Evan Green Princeton University PRESTO /22/08 Virtualizing the Data Plane Through Source Code Merging.
Rensselaer Polytechnic Institute CSCI-4210 – Operating Systems CSCI-6140 – Computer Operating Systems David Goldschmidt, Ph.D.
Parallelizing Security Checks on Commodity Hardware E.B. Nightingale, D. Peek, P.M. Chen and J. Flinn U Michigan.
Project 1, Command Shell CS-502 (EMC) Fall Programming Project #1 Command Shell CS-502, Operating Systems EMC, Fall 2009 (Slides include materials.
Process Control. Module 11 Process Control ♦ Introduction ► A process is a running occurrence of a program, including all variables and other conditions.
Parallelizing Security Checks on Commodity Hardware Ed Nightingale Dan Peek, Peter Chen Jason Flinn Microsoft Research University of Michigan.
Background: Operating Systems Brad Karp UCL Computer Science CS GZ03 / M th November, 2008.
1 EPSII 59:006 Spring Real Engineering Problem Solving Analyzing Results of Designs is Paramount Problems are Difficult, Code Writing Exhaustive.
Principles of Information Systems, Sixth Edition Systems Investigation and Analysis Chapter 12.
SPECULATIVE EXECUTION IN A DISTRIBUTED FILE SYSTEM E. B. Nightingale P. M. Chen J. Flint University of Michigan.
Lecture 24CS311 – Operating Systems 1 1 CS311 – Lecture 24 Outline Final Exam Study Guide Note: These lecture notes are not intended replace your notes.
1 Test Selection for Result Inspection via Mining Predicate Rules Wujie Zheng
Wordpress with Mina Automated Deployment Solution Jonathan Gravato DIG 4104c.
Speculative Execution in a Distributed File System Ed Nightingale Peter Chen Jason Flinn University of Michigan.
Linux+ Guide to Linux Certification, Third Edition
Week 14 Introduction to Computer Science and Object-Oriented Programming COMP 111 George Basham.
CISC Machine Learning for Solving Systems Problems Presented by: Suman Chander B Dept of Computer & Information Sciences University of Delaware Automatic.
1 Lecture 6 Introduction to Process Management COP 3353 Introduction to UNIX.
Sep 13, 2006 Scientific Computing 1 Managing Scientific Computing Projects Erik Deumens QTP and HPC Center.
Lesson 3-Touring Utilities and System Features. Overview Employing fundamental utilities. Linux terminal sessions. Managing input and output. Using special.
Speculation Supriya Vadlamani CS 6410 Advanced Systems.
Automating Configuration Troubleshooting with Dynamic Information Flow Analysis Mona Attariyan Jason Flinn University of Michigan.
20 Copyright © 2008, Oracle. All rights reserved. Cache Management.
Installing Applications in FreeBSD lctseng. Computer Center, CS, NCTU 2 Before we start  Permission issue root: the super user Like administrator in.
1 CS3695 – Network Vulnerability Assessment & Risk Mitigation – Introduction to Unix & Linux.
Confidencial - TRACASA Automatize test [e- Reporting]
T EST T OOLS U NIT VI This unit contains the overview of the test tools. Also prerequisites for applying these tools, tools selection and implementation.
Speculative Execution in a Distributed File System Ed Nightingale Peter Chen Jason Flinn University of Michigan Best Paper at SOSP 2005 Modified for CS739.
1 Lecture 7 Introduction to Shell Scripts COP 3353 Introduction to UNIX.
REGRESSION TESTING Audrius Čėsna IFM-0/2. Regression testing is any type of software testing that seeks to uncover new errors, or regressions, in existing.
Shadow Shadow of a Doubt: Testing for Divergences Between Software Versions Hristina PalikarevaTomasz KuchtaCristian Cadar ICSE’16, 20 th May 2016 This.
Ocasta: Clustering Configuration Settings for Error Recovery Zhen Huang, David Lie Department of Electrical and Computer Engineering University of Toronto.
Unit Testing.
Selenium HP Web Test Tool Training
Chapter 11 Command-Line Master Class
Selenium HP Web Test Tool Training
Rethink the Sync Ed Nightingale Kaushik Veeraraghavan Peter Chen
Programming Project #1 Command Shell
Programming Project #1 Fork and Command Shell
Rethink the Sync Ed Nightingale Kaushik Veeraraghavan Peter Chen
Lab 4: Introduction to Scripting
CST8177 Scripting 2: What?.
The Troubleshooting theory
Presentation transcript:

1 AutoBash: Improving Configuration Management with Operating System Causality Analysis Ya-Yunn Su, Mona Attariyan, and Jason Flinn University of Michigan

2 Motivation Configuration management is frustrating! Users may have to –Change environment variables –Edit configuration files –Manage inter-application dependencies Current approach: –Ask friends, search on-line, read manual, … –Try potential solutions –Carefully undo wrong solutions

3 AutoBash solves these problemsProblems with current approach Applying solutions is time-consuming Undoing a wrong solution can be hard Hard to know how a problem was solved A “solution” may cause new problems Automatically tries many solutions Provides undo capability Explains solution to user Automatically runs regression tests

4 - ( - ) AutoBash overview Health Monitoring Mode Periodically tests system health Problem Detected Replay Mode Automatically searches for a solution Least user effort Observation Mode Helps user fix the problem Substantial user involvement

5 Outline Motivation AutoBash design and implementation –Observation mode –Replay mode –Health monitoring mode Evaluation Conclusion

6 Observation mode A modified bash shell –User types in commands to solve the problem % command 1 % test if app works % undo testing % undo command 1 % command 2

7 Verifying a solution is tedious AutoBash automatically tests using predicates Predicate: –Tests if an application functions correctly –Returns true/false if the test passes/fails wget Predicate example for a web server % command 1 % test if app works % undo testing % rollback command 1 % command 2

8 Undoing testing is tedious Predicate testing has no side effects –Executed speculatively and rolled back Speculator [SOSP ‘05] –Process-level speculative execution Speculative execution makes predicate testing safe % command 1 % test if app works % undo testing % rollback command 1 % command 2

9 Undo can be hard AutoBash speculatively executes each action –Light-weight checkpoint and rollback Speculative execution makes undo easy % command 1 % test if app works % undo testing % undo command 1 % command 2 % rollback command 1

10 Regression testing is hard AutoBash automatically runs regression tests –Executes predicates in the predicate database –Ensures all predicates pass Predicate Database P0P1P2 P3P4P5 CVS predicates GCC cross-compiler predicates Web server predicates P6P7P8

11 Regression tests can be slow Problem: running all predicates can be slow Only need to run predicates affected by an action –Uses causality tracking to find affected predicates

12 Tracking causality Output set –kernel objects an action causally affects Input set –kernel objects a predicate causally depends on Predicate: grep “test” bar Output set = {file foo} Action: touch foo Input set = {file bar}

13 Analyzing causality AutoBash calculates the intersection –Determines which predicates to run Action: touch foo file: foofile: bar Predicate: grep “test” bar Do not run predicate

14 sh exit touch fork & exec touch exit Tracking output sets An output set is tracked for each action Process sh Output set file foo create Process touch File metadata foo File content foo Directory entry foo Action: sh create_file.sh create_file.sh: touch foo

15 sh Predicate: sh testfile.sh testfile.sh: grep “test” bar Process grep Process sh File metadata bar File content bar Directory entry bar Process grep’s input set Process grep Process sh grep fork & exec grep exit Tracking input sets An input set is tracked for each predicate Predicate’s input set file bar read Process grep File metadata bar File content bar Directory entry bar Process sh File metadata bar File content bar Directory entry bar

16 Understanding solutions can be hard AutoBash generates causal explanation –Analyzes input and output sets

17 Causal explanation ls –l /home/$USER metadata: /home/$USER/ public_html wget index.html metadata: /home/$USER chmod +x /home/$USER chmod +x /home/$USER/ public_html wget ~$USER/cgi-bin/test.pl wget ~$USER/index.html Actions Kernel objects Predicates

18 Outline Motivation AutoBash design and implementation –Observation mode –Replay mode –Health monitoring mode Evaluation Conclusion

19 Replay mode Problem: finding a solution is time-consuming Automatically searches for a solution –No user input needed Speculative execution provides isolation –User continues foreground task –AutoBash runs replay mode in background

20 (1) Initial predicate testing: Tracks input set for each predicate Determines passed/failed predicates S2S1S0 How replay mode works P0P1P2 P3P4 Predicate Database Solution Database S0S1S2 S3S4S5 P0P1P2 P3P4 P0P1P2 P3P4

21 (2) Solution execution: Speculatively executes a solution Tracks solution output set S2S1S0 How replay mode works P0P1P2 P3P4 Predicate Database Solution Database S0S1S2 S3S4S5 P0P1P2 P3P4

22 S0 (3) Verifying solution: Calculates intersection Runs predicates with intersection P0 P2 S2S1 How replay mode works P0P1P2 P3P4 Predicate Database Solution Database S0S1S2 S3S4S5 P0P1P2 P3P4 Predicate fails

23 P0 P2 S2S1S0 How replay mode works P0P1P2 P3P4 Predicate Database Solution Database S0S1S2 S3S4S5 P0P1P2 P3P4 Discards solution with no intersection

24 P1 P3 P4 P0 P2 P0 P2 (4) Regression tests: Calculates intersection Runs predicates affected by solution S2S1S0 How replay mode works P0P1P2 P3P4 Predicate Database Solution Database S0S1S2 S3S4S5 P0P1P2 P3P4 P0P1P2 P3P4 Predicates passPredicate passes

25 Speculative execution provides safety Causality analysis provides speed S2S1S0 P0 P2 How replay mode works P0P1P2 P3P4 Predicate Database Solution Database S0S1S2 S3S4S5 P0P1P2 P3P4 P1 P3 P4 P0P1P2 P3P4 Predicate passes S2

26 Health monitoring mode Periodically executes all predicates If any predicate fails, AutoBash –Runs replay mode to search for a solution –Reports to the user to run observation mode

27 Outline Motivation AutoBash Design and Implementation –Observation mode –Replay mode –Health monitoring mode Evaluation Conclusion

28 Evaluation Questions: –What is the overhead of speculative execution? –How effective is causality analysis? Methodology: –Evaluated CVS, gcc cross compiler, web server –Manually created 10 bugs and 10 solutions –Manually created 5-8 predicates

29 Total replay time (GCC) Without speculative execution With speculative execution  Speculative execution overhead is negligible

30 Total replay time (GCC)  Causal analysis improves predicate re-testing time by 67-99% Without causality analysis With causality analysis

31 Conclusion Configuration management is frustrating AutoBash automates most tedious parts Speculative execution makes AutoBash safe Causality analysis makes AutoBash fast

32 Questions? Supported by