Public Deployment of Cooperative Bug Isolation

Slides:



Advertisements
Similar presentations
Software & Services Group PinPlay: A Framework for Deterministic Replay and Reproducible Analysis of Parallel Programs Harish Patil, Cristiano Pereira,
Advertisements

Building a Better Backtrace: Techniques for Postmortem Program Analysis Ben Liblit & Alex Aiken.
Building a Better Backtrace: Techniques for Postmortem Program Analysis Ben Liblit & Alex Aiken.
1 Bug Isolation via Remote Program Sampling Ben LiblitAlex Aiken Alice X. ZhengMichael Jordan Presented By : Arpita Gandhi.
Statistical Debugging Ben Liblit, University of Wisconsin–Madison.
Bug Isolation via Remote Program Sampling Ben Liblit, Alex Aiken, Alice X.Zheng, Michael I.Jordan Presented by: Xia Cheng.
An efficient data race detector for DIOTA Michiel Ronsse, Bastiaan Stougie, Jonas Maebe, Frank Cornelis, Koen De Bosschere Department of Electronics and.
CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
Bug Isolation in the Presence of Multiple Errors Ben Liblit, Mayur Naik, Alice X. Zheng, Alex Aiken, and Michael I. Jordan UC Berkeley and Stanford University.
The Future of Correct Software George Necula. 2 Software Correctness is Important ► Where there is software, there are bugs ► It is estimated that software.
PathExpander: Architectural Support for Increasing the Path Coverage of Dynamic Bug Detection S. Lu, P. Zhou, W. Liu, Y. Zhou, J. Torrellas University.
16/27/2015 3:38 AM6/27/2015 3:38 AM6/27/2015 3:38 AMTesting and Debugging Testing The process of verifying the software performs to the specifications.
Bug Isolation via Remote Program Sampling Ben LiblitAlex Aiken Alice ZhengMike Jordan.
Prof. Aiken CS 169 Lecture 71 Version Control CS169 Lecture 7.
Scalable Statistical Bug Isolation Ben Liblit, Mayur Naik, Alice Zheng, Alex Aiken, and Michael Jordan, 2005 University of Wisconsin, Stanford University,
Scalable Statistical Bug Isolation Ben Liblit, Mayur Naik, Alice Zheng, Alex Aiken, and Michael Jordan University of Wisconsin, Stanford University, and.
University of Maryland Bug Driven Bug Finding Chadd Williams.
Bug Localization with Machine Learning Techniques Wujie Zheng
AADEBUG MUNCHEN Non-intrusive on-the-fly data race detection using execution replay Michiel Ronsse - Koen De Bosschere Ghent University - Belgium.
Scalable Statistical Bug Isolation Authors: B. Liblit, M. Naik, A.X. Zheng, A. Aiken, M. I. Jordan Presented by S. Li.
Introduction to Software Testing. Types of Software Testing Unit Testing Strategies – Equivalence Class Testing – Boundary Value Testing – Output Testing.
Functional Verification of Dynamically Reconfigurable Systems Mr. Lingkan (George) Gong, Dr. Oliver Diessel The University of New South Wales, Australia.
1 Test Selection for Result Inspection via Mining Predicate Rules Wujie Zheng
Cooperative Concurrency Bug Isolation Guoliang Jin, Aditya Thakur, Ben Liblit, Shan Lu University of Wisconsin–Madison Instrumentation and Sampling Strategies.
“Isolating Failure Causes through Test Case Generation “ Jeremias Rößler Gordon Fraser Andreas Zeller Alessandro Orso Presented by John-Paul Ore.
Bug Isolation via Remote Sampling. Lemonade from Lemons Bugs manifest themselves every where in deployed systems. Each manifestation gives us the chance.
Practical Path Profiling for Dynamic Optimizers Michael Bond, UT Austin Kathryn McKinley, UT Austin.
Software testing techniques Software testing techniques Statistical Testing Presentation on the seminar Kaunas University of Technology.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
CSC 480 Software Engineering Test Planning. Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class.
Aditya Thakur Rathijit Sen Ben Liblit Shan Lu University of Wisconsin–Madison Workshop on Dynamic Analysis 2009 Cooperative Crug Isolation.
Dynamic Testing.
Statistical Debugging CS Motivation Bugs will escape in-house testing and analysis tools –Dynamic analysis (i.e. testing) is unsound –Static analysis.
Cooperative Bug Isolation CS Outline Something different today... Look at monitoring deployed code –Collecting information from actual user runs.
Automated Adaptive Bug Isolation using Dyninst Piramanayagam Arumuga Nainar, Prof. Ben Liblit University of Wisconsin-Madison.
Water and people in a changing world Yhd ; Spring
Intro CS – Probability and Random Numbers Lesson Plan 6a.
Bug Isolation via Remote Program Sampling Ben LiblitAlex Aiken Alice X. ZhengMichael I. Jordan UC Berkeley.
1 if you use this format with a picture in the vertical- stripe format, then adjust the RH edge of the title bar to be just L of the stripe. Test Automation.
July 10, 2016ISA's, Compilers, and Assembly1 CS232 roadmap In the first 3 quarters of the class, we have covered 1.Understanding the relationship between.
Phoenix Based Dynamic Slicing Debugging Tool Eric Cheng Lin Xu Matt Gruskin Ravi Ramaseshan Microsoft Phoenix Intern Team (Summer '06)
Chapter 4: Threads Modified by Dr. Neerja Mhaskar for CS 3SH3.
Water and people in a changing world
Chapter 1 Computer System Overview
Intro CS – Probability and Random Numbers
CSC 591/791 Reliable Software Systems
Extreme Programming.
Statistical Testing Jonas Abromaitis IFM-0/2.
Trickle: Code Propagation and Maintenance
Amir Kamil and Katherine Yelick
CHAPTER 4 Test Design Techniques
Continuous Integration and Continuous Delivery ( Dev-Ops ) - Fortunesoft
X in [Integration, Delivery, Deployment]
Sampling User Executions for Bug Isolation
Chapter 4: Threads.
5 things you didn’t know you can BUILD with Microsoft Edge
Mayank Bhatt, Jayasi Mehar
Concurrent Graph Exploration with Multiple Robots
Automation Of Software Test
Static Testing Static testing refers to testing that takes place without Execution - examining and reviewing it. Dynamic Testing Dynamic testing is what.
Yikes! Why is my SystemVerilog Testbench So Slooooow?
CSE 303 Concepts and Tools for Software Development
Chapter 4: Threads.
Amir Kamil and Katherine Yelick
Chapter 1 Computer System Overview
CSC-682 Advanced Computer Security
Computer System Overview
Chapter 7 Software Testing.
Dynamic Binary Translators and Instrumenters
Software Testing.
Presentation transcript:

Public Deployment of Cooperative Bug Isolation Ben Liblit, Mayur Naik, Alice Zheng, Alex Aiken, and Michael Jordan UC Berkeley, Stanford University and University of Wisconsin (pending) Motivate research Review instrumentation strategy Engineering issues exposed working toward public deployment Eye candy Screen shots Deployment status Sneak peak at analysis results

Our Goal: Measure Reality We measure bridges, airplanes, cars… Where is ight data recorder for software? Users are a vast, untapped resource 96,000 new Kazaa users during this workshop Users know what matters most Opportunity for reality-directed debugging Implicit bug triage for an imperfect world Users define what matters most. Office XP: 60 million licenses in first year; nearly 2 per second Kazaa: “over 1.9 million downloaded last week”; more than 3 per second

Bug Isolation Architecture Guesses Shipping Application Program Source Sampler  € ƒ ‚ Compiler Note: no programmer annotation required! Just pick which instrumentation schemes to activate. Review of instrumentation strategy Engineering challenges & solutions Deployment status Preliminary results Statistical Debugging Prole & J/L Top bugs with likely causes

Predicates on Program Behavior Guess what might be interesting Branches: Left? Right? Function returns: Negative? Zero? Positive? Pairs of variables: Less? Equal? Greater? Reference counts: Alive? Dead? Count how often guesses are true Feedback: vector of counts + outcome label These are just examples; we have several more schemes too.

Sampling the Bernoulli Way “Next sample” countdown Geometric distribution Split into acyclic regions Finite threshold weight Martin Hirzel & Trishul Chilimbi: optimal threshold check placement is NP-hard optimality = minimal set of check nodes such that every cycle contains at least one by reduction from Vertex-Cover

Sampling the Bernoulli Way “Next sample” countdown Geometric distribution Split into acyclic regions Finite threshold weight 4 3 1 2 1 2 1 Martin Hirzel & Trishul Chilimbi: optimal threshold check placement is NP-hard optimality = minimal set of check nodes such that every cycle contains at least one by reduction from Vertex-Cover 1

Sampling the Bernoulli Way “Next sample” countdown Geometric distribution Split into acyclic regions Finite threshold weight Clone acyclic regions “Fast” & “slow” variants Choose at run time Result: Subset of dynamic behavior Statistically fair sample >4? Related work: Arnold & Ryder [2001]

Multithreaded Programs Global next-sample countdown High contention, small footprint Want to use registers for performance Thread-local: one countdown per thread Global predicate counters Low contention, large footprint Optimistic atomic increment

Multi-Module Programs Forget about global static analysis Plug-ins, shared libraries Instrumented & uninstrumented code Self-management at compile time Locally derive identifying object signature Embed static site information within object le Self-management at run time Report feedback state on normal object unload Signal handlers walk global object registry

Native Compiler Integration Instrumentor must mimic native compiler You don’t have time to port & annotate by hand Our approach: source-to-source, then native Hooks for GCC: Stage wrapping via scripts Flag management via specles Compiler Sampler Guesses Shipping Application Program Source Compiler Tool Chain

Keeping the User In Control

Public Deployment, To Date

Public Deployment, To Date

Sneak Peak: Data Exploration Entire band: total number of runs in which the predicate is observed to be true Black segment: P(fail | line of code on which the predicate occurs is reached) White segment: P(succeed | predicate is observed to be true) Red + pink segments: increase in P(crash | predicate is observed to be true) beyond P(crash line of code on which the predicate occurs is reached) Red segment only: increase for which we are 95% confident

Conclusions Public deployment is challenging Real world code pushes tools to their limits Large user communities take time to build But the results are worth it: “Thanks to Ben Liblit and the Cooperative Bug Isolation Project, this version of Rhythmbox should be the most stable yet.”

The Cooperative Bug Isolation Project Join the Cause! The Cooperative Bug Isolation Project http://www.cs.berkeley.edu/~liblit/sampler/