Automated Diagnosis of Software Configuration Errors Sai Zhang , - - PowerPoint PPT Presentation

automated diagnosis of software configuration errors
SMART_READER_LITE
LIVE PREVIEW

Automated Diagnosis of Software Configuration Errors Sai Zhang , - - PowerPoint PPT Presentation

Automated Diagnosis of Software Configuration Errors Sai Zhang , Michael D. Ernst University of Washington


slide-1
SLIDE 1

Automated Diagnosis of Software Configuration Errors

Sai Zhang, Michael D. Ernst University of Washington

slide-2
SLIDE 2
slide-3
SLIDE 3
slide-4
SLIDE 4
  • This paper!

Bugs Wrong inputs Configuration errors

slide-5
SLIDE 5
  • Fixable by
  • Actionable by system administrators or endusers
  • 17% of the total technical support cost [Kapoor ’03, Yin ’11]
  • Configuration options Inputs

– Options: customize program behaviors by altering the control flow – Input values: produce output for a specific task

slide-6
SLIDE 6
  • Example
  • The ConfDiagnoser Technique
  • Evaluation
  • Related Work
  • Contributions
slide-7
SLIDE 7
  • A “bug report” against the Randoop test generation tool

9

!

slide-8
SLIDE 8

!

  • A silent failure

– No crashing points – No stacktrace – No error message

  • Inputs are already minimized
  • Delta debugging [Zeller’02], dynamic slicing [Zhang’06],

capture/replay [Whitaker’04], stack trace analysis [Rakbin’11], tainting [Attariyan’12] 9

slide-9
SLIDE 9

!!

in total

slide-10
SLIDE 10
  • A ranked list of suspicious configuration options
  • The topranked option for the Randoop error:
  • !"!#$

%& '"( )*+,$-$& .!$# ))/! )+0/!!$$

" #

slide-11
SLIDE 11
  • Example
  • The ConfDiagnoser Technique
  • Evaluation
  • Related Work
  • Contributions
slide-12
SLIDE 12
  • Example
  • The ConfDiagnoser Technique
  • Evaluation
  • Related Work
  • Contributions
slide-13
SLIDE 13

Wrong inputs Bugs

" #

  • Configuration errors
slide-14
SLIDE 14

" #

  • Configuration errors
  • ConfDiagnoser

1. 2. 3.

slide-15
SLIDE 15

" # $

  • Fullyautomatically diagnoses configuration errors
  • Diagnoses both crashing and noncrashing errors
  • Requires no OSlevel support
slide-16
SLIDE 16

" #

  • Control flow propagates most configuration options’ effects
  • Correct execution traces serve as approximate oracles

– The control flow difference provides debugging clues

11 $-2$3

  • ! "

#!$" %

slide-17
SLIDE 17

%"

  • """""

""" """"""""" """"" """"""""""""

  • """""

""""""""""""

  • &

'(

11 $-2$3

  • !")%*+,-

!

slide-18
SLIDE 18

%"

  • """""

""" """"""""" """"" """"""""""""

  • """""

""""""""""""

""""" """ """"""""" """"" """"""""""""

  • &

'(

  • #$

#$

!

slide-19
SLIDE 19
  • %"
  • """""

""" """"""""" """"" """"""""""""

  • """""

""""""""""""

""""" """ """"""""" """"" """"""""""""

#$ %

  • &

'(

  • .
  • %

%

9 !/ / #!*( #/

  • !
slide-20
SLIDE 20

%"

""""" """ """"""""" """"" """"""""""""

  • """""

""""""""""""

""""" """ """"""""" """"" """"""""""""

#$ %

  • &

'(

  • .
  • %

%

9 9

% % %

! * %+*/*%%! #!'%+*/1

1 1 + 1

!

slide-21
SLIDE 21

%"

  • """""

""" """"""""" """"" """"""""""""

  • """""

""""""""""""

""""" """ """"""""" """"" """"""""""""

#$ %

  • &

'(

  • .
  • %

%

9 9

% % % */(2%/%% 1. 2. 3.

  • &
  • !
slide-22
SLIDE 22
  • Example
  • The ConfDiagnoser Technique
  • Evaluation
  • Related Work
  • Contributions
slide-23
SLIDE 23

!

  • How effective is ConfDiagnoser in diagnosing errors?

– Diagnosis accuracy – Time cost – Comparison with three existing techniques

  • One configuration error diagnosis technique
  • Two general automated debugging techniques
slide-24
SLIDE 24

&'()

  • Subject

LOC #Options #Non(crashing Errors #Crashing Errors Randoop 18587 57 1 Weka 3810 14 1 Synoptic 19153 37 1 Soot 159271 49 1 JChord 23391 79 1 9 % )3 '+- %4'56 6 7

  • Correct executions for each program

– 6 – 16 examples from its user manual

slide-25
SLIDE 25
  • Measure accuracy by the absolute root cause ranking
  • Time cost: 4 mins / error (on average)

" #

  • 1.

2. 3.

Average rank: 5th 8 errors ranks first 10 errors ranks in the top 3

crashing errors non(crashing errors

Better for non(crashing errors

Root Cause Rank Error ID

slide-26
SLIDE 26

""* [Rabkin ’11]

  • The most recent configuration error diagnosis technique

– Use dynamic tainting – Only supports crashing errors

  • '/3

2 01$* 2 '(1#* 0 %1 2 8 9 2 2 :

crashing errors non(crashing errors

slide-27
SLIDE 27

"%+,#-./

  • Tarantulabased configuration debugging

– Use statement coverage to localize suspicious statements – Use thin slicing to identify the affecting configuration options

  • +2/(2%
  • '&
  • (

'/3 2 01$* 2 1$*

slide-28
SLIDE 28

"0$+" #-'/

  • Invariant Analysisbased configuration debugging

– Use method invariant difference to localize suspicious methods – Use thin slicing to identify the affecting configuration options

  • /(+*%2/(2%
  • (" $$&

'/3 2 01$* 2 /'(19*

slide-29
SLIDE 29

1

  • ConfDiagnoser is accurate and efficient
  • ConfDiagnoser outperforms existing techniques

– One configuration error diagnosis technique – Two general automated debugging techniques

slide-30
SLIDE 30
  • Assumption, Goal, and Insight
  • The ConfDiagnoser Technique
  • Evaluation
  • Related Work
  • Contributions
slide-31
SLIDE 31

!

  • Taintingbased techniques

– Dynamic tainting [Attariyan’08] – Static tainting [Rabkin’11] 2$

  • Searchbased techniques

– Delta debugging [Zeller’02], Chronus [Whitaker’04] !34$

  • Domainspecific techniques

– PeerPressure [Wang’04] – RangeFixer [Xiong’12] %3 ,$

slide-32
SLIDE 32
  • Assumption, Goal, and Insight
  • The ConfDiagnoser Technique
  • Evaluation
  • Related Work
  • Contributions
slide-33
SLIDE 33

"

  • A technique to diagnose configuration errors

" $ – Fully automated – Can diagnose both crashing and noncrashing errors – Requires no OSlevel support

  • Experiments that demonstrate its usefulness

– Accurate and fast – Outperforms three existing techniques

  • The ConfDiagnoser tool implementation

566477

  • Configuration errors

ConfDiagnoser

1. 2. 3.

slide-34
SLIDE 34

+8/

slide-35
SLIDE 35

! "

  • A configuration option is represented as a class field
  • An example configuration option in Randoop:
  • Made a 24LOC syntactic change to 5 subject programs

– Transform configuration option into class field

  • Field name

Class name