Which Configuration Option Should I Change? Sai Zhang , Michael D. - - PowerPoint PPT Presentation

which configuration option should i change
SMART_READER_LITE
LIVE PREVIEW

Which Configuration Option Should I Change? Sai Zhang , Michael D. - - PowerPoint PPT Presentation

Which Configuration Option Should I Change? Sai Zhang , Michael D. Ernst University of Washington Presented by: Kvan Mulu


slide-1
SLIDE 1

Which Configuration Option Should I Change?

Sai Zhang, Michael D. Ernst University of Washington Presented by: Kıvanç Mulu

slide-2
SLIDE 2

2

Developers Users

slide-3
SLIDE 3
  • Goal:

– enable users to fix software errors

  • Challenges:

– Errors can be crashing or non#crashing – Users much less understand source code – Developer tools are of little use

3

slide-4
SLIDE 4

4

  • Our previous work [ISSTA’13]
  • Users
slide-5
SLIDE 5

5

  • This paper:
  • Users
slide-6
SLIDE 6
  • 6
  • Configuration errors:

Users use wrong values for options The software exhibits unintended behaviors

slide-7
SLIDE 7

!

7

Root causes of issues in a major storage company [Yin et al, SOSP’11] Configuration errors can have impacts (downtime costs !"# of revenue)

slide-8
SLIDE 8
  • Error messages are absent or ambiguous

– e.g.,

  • Infeasible to automatically search for a good configuration

– Need to know the spec of a valid configuration option value (e.g., regex, date time, integer value range) – Huge search space − Need to specify a testing oracle for automation

  • Cannot directly use existing debugging techniques

[Zhang et al., ICSE’13]

8

after setting $%%!%in webs server)

slide-9
SLIDE 9

" !!

9

To maintain the desired behavior on the new version

  • Old version

New version Requires configuration!

slide-10
SLIDE 10

10

Old version New version

#

  • Our technique: ConfSuggester

&

Key idea:

slide-11
SLIDE 11
  • Accessible: no assumption about user background

(e.g., users cannot read or write code annotations)

  • Easy+to+use: fully automated
  • Portable: no changes to OS or runtime environment
  • Accurate: few false positives

11

slide-12
SLIDE 12

$

  • Example
  • A Study of Configuration Evolution
  • The ConfSuggester Technique
  • Evaluation
  • Related Work
  • Contributions

12

slide-13
SLIDE 13

$

  • Example
  • A Study of Configuration Evolution
  • The ConfSuggester Technique
  • Evaluation
  • Related Work
  • Contributions

13

slide-14
SLIDE 14

14

A popular performance testing tool Use Jmeter to monitor a website’s performance Managers

slide-15
SLIDE 15

15

Use Jmeter to monitor a website’s performance Managers '(!) '(!*

All regression tests passed

slide-16
SLIDE 16

16

'(!) '(!*

All regression tests passed

The new version behaves as designed, but differently from a user expects. No regression bugs.

+,-

slide-17
SLIDE 17

17

'(!) '(!*

All regression tests passed

ConfSuggester

&

  • ./: set
slide-18
SLIDE 18

18

'(!) '(!*

All regression tests passed

slide-19
SLIDE 19

$

  • Example
  • A Study of Configuration Evolution
  • The ConfSuggester Technique
  • Evaluation
  • Related Work
  • Contributions

19

slide-20
SLIDE 20

# !%

  • 8 open#source programs

20

  • 40 versions released in the past 6 years
  • Searched for “configuration changes”#related messages in 7022 commits

and 28 change logs ‒ Count the number of changes made to configuration options

slide-21
SLIDE 21

&

  • Configuration changes arise in every version of all

software systems

21

  • Configuration change can lead to unexpected behaviors

(details later)

(394 configuration changes in total)

  • ,

1

  • 2/

. ./

slide-22
SLIDE 22

$

  • Example
  • A Study of Configuration Evolution
  • The ConfSuggester Technique
  • Evaluation
  • Related Work
  • Contributions

22

slide-23
SLIDE 23

'#

  • Control flow propagates most configuration options’ effects
  • The execution traces on the old version can serve as the

“intended behavior”

– The control flow difference and their impacts provides diagnosis clues

3, 45

  • !"

#$%# &'#" #$%#( & The evaluation result of this predicate affects the next 1000+ instructions

23

slide-24
SLIDE 24

()

24

6

  • 7
  • 1

89

. :

1. 2. 3. .

slide-25
SLIDE 25

()

25

6

  • 7
  • 1

89

. :

1. 2. 3. .

  • 1
  • /

&

slide-26
SLIDE 26

()

26

slide-27
SLIDE 27
  • 27

6

  • ;

$! < (!

slide-28
SLIDE 28

*

28

  • : a predicate

: a deviated predicate

.

  • ,
slide-29
SLIDE 29

+#*

29

  • JDiff algorithm [Apiwattanapong’07]

− Tolerate small changes between versions

  • !"

#$%# &'#" #$%#( &

  • #('"

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

  • 6
slide-30
SLIDE 30

,!*

30

C

  • : a predicate

: a deviated predicate

a predicate ’s behavior in an execution trace ϕ (p, t) = a predicate ’s behavior difference across executions: deviation(p, told, tnew) = | ϕ (p, told) ϕ (p, tnew) | is a deviated predicate, if deviation(p, told, tnew) > δ

2 1 + 1

Goal:

slide-31
SLIDE 31

&)!*

31

Rank predicates by their impacts A predicate ’s deviation impact

= deviation(p, told, tnew)

= (controlled_instructions(p, told) + controlled_instructions(p, tnew) )

  • !"

#$%# &'#" #$%#( &

  • #$%#

#$%#(

  • # of instructions

executed

  • predicate :
slide-32
SLIDE 32

&)!*

32

  • !"

#$%# &'#" #$%#( &

  • #$%#

#$%#(

  • # of instructions

executed

6

predicate :

Rank predicates by their impacts A predicate ’s deviation impact

= deviation(p, told, tnew)

= (controlled_instructions(p, told) + controlled_instructions(p, tnew) )

slide-33
SLIDE 33

&)!*

33

  • !"

#$%# &'#" #$%#( &

  • #$%#

#$%#(

  • # of instructions

executed

6

predicate :

Rank predicates by their impacts A predicate ’s deviation impact

= deviation(p, told, tnew)

= (controlled_instructions(p, told) + controlled_instructions(p, tnew) )

slide-34
SLIDE 34

& -.

34

Find configuration options affecting the deviated predicate − Using static thin slicing [Sridharan ’07]

a configuration option in JMeter

  • !"

#$%# &'#" #$%#( & 7/ /

  • 2

1. 2. 3. .

slide-35
SLIDE 35

$

  • Example
  • A Study of Configuration Evolution
  • The ConfSuggester Technique
  • Evaluation
  • Related Work
  • Contributions

35

slide-36
SLIDE 36

/0 1

36

Subject LOC #Options ∆LOC #Config errors Randoop 18587 57 1893 1 Weka 275035 14 1458 1 Synoptic 19153 37 1658 2 JChord 26617 79 3085 2 JMeter 91797 55 3264 1 Javalanche 25144 35 9261 1 6

  • .

!

slide-37
SLIDE 37

2

37

  • Measure accuracy by the rank of the actual root

cause in ConfSuggester’s output

1. 2. 3.

slide-38
SLIDE 38

2

38

  • Measure accuracy by the rank of the actual root

cause in ConfSuggester’s output

1. 2. 3.

Technique Average Root Cause Rank Baseline 23.3 ConfAnalyzer [Rabkin’11] 22 ConfDiagnoser [Zhang’13] 15.3 ConfSuggester 1.9

  • >

‒ Users select options in an arbitrary order ‒ Half of the total number of available options

slide-39
SLIDE 39

2

39

  • Measure accuracy by the rank of the actual root

cause in ConfSuggester’s output

1. 2. 3.

Technique Average Root Cause Rank Baseline 23.3 ConfAnalyzer [Rabkin’11] 22 ConfDiagnoser [Zhang’13] 15.3 ConfSuggester 1.9

  • :

‒ Use program slicing for error diagnosis

slide-40
SLIDE 40

2

40

  • Measure accuracy by the rank of the actual root

cause in ConfSuggester’s output

1. 2. 3.

Technique Average Root Cause Rank Baseline 23.3 ConfAnalyzer [Rabkin’11] 22 ConfDiagnoser [Zhang’13] 15.3 ConfSuggester 1.9

  • 1

‒ Use trace comparison (on the same version) for error diagnosis

slide-41
SLIDE 41

2

41

  • Measure accuracy by the rank of the actual root

cause in ConfSuggester’s output

1. 2. 3.

Technique Average Root Cause Rank Baseline 23.3 ConfAnalyzer [Rabkin’11] 22 ConfDiagnoser [Zhang’13] 15.3 ConfSuggester (this paper) 1.9

  • &

6 errors: root cause ranks 1st 1 error: root cause ranks 3rd 1 error: root cause ranks 6th

slide-42
SLIDE 42

2

  • User demonstration

– 6 minutes per error, on average

  • Error diagnosis

– 4 minutes per error, on average

42

slide-43
SLIDE 43

$

  • Example
  • A Study of Configuration Evolution
  • The ConfSuggester Technique
  • Evaluation
  • Related Work
  • Contributions

43

slide-44
SLIDE 44

&)

  • Tainting#based techniques

– Dynamic tainting [Attariyan’08], static tainting [Rabkin’11] !#

  • Search#based techniques

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

  • Domain#specific techniques

– PeerPressure [Wang’04], RangeFixer [Xiong’12] 3*) **)4!

44

A common limitation: do not support configuration error diagnosis in software evolution.

slide-45
SLIDE 45

$

  • Example
  • A Study of Configuration Evolution
  • The ConfSuggester Technique
  • Evaluation
  • Related Work
  • Contributions

45

slide-46
SLIDE 46
  • A technique to diagnose configuration errors for

evolving software

* #!

  • The ConfSuggester tool implementation

#*"55

Accessible: no assumption about user background Easy+to+use: fully automated Portable: no changes to OS or runtime environment Accurate: few false positives

  • 46

Configuration errors

ConfSuggester

1. 2. 3. .