Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER example)

20
ICSE ‘09: New Ideas and Emerging Results Debugging Field Failures by Minimizing Captured Executions James Clause and Alessandro Orso Georgia Institute of Technology 1

Transcript of Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER example)

Page 1: Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER example)

ICSE ‘09: New Ideas and Emerging Results

Debugging Field Failures by Minimizing Captured ExecutionsJames Clause and Alessandro OrsoGeorgia Institute of Technology

1

Page 2: Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER example)

ICSE ‘09: New Ideas and Emerging Results

What are field failures?

Failures that occur after application deployment

Difficult to reproduce in-house ➞ difficult to debug

2

Page 3: Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER example)

ICSE ‘09: New Ideas and Emerging Results

Current approaches

Collect limitedinformation

Ask the userhow to reproduce

3

Page 4: Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER example)

ICSE ‘09: New Ideas and Emerging Results

Replay / Debug

Develop Record

Captured

failure

In th

e fi

eldIn

ho

use

Our approach

4

Page 5: Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER example)

ICSE ‘09: New Ideas and Emerging Results

Our approachIn

the

fie

ldIn h

ou

se

Replay / Debug

Develop Record

Minimize✘

Captured

failure

Minimized

failure

5

Page 6: Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER example)

ICSE ‘09: New Ideas and Emerging Results

Recording

Capture high-level events

efficient

amenable to minimization

6

Page 7: Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER example)

ICSE ‘09: New Ideas and Emerging Results

Replaying

Interfere as little as possible

redirect high-level events

maintain relative time of events

7

Page 8: Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER example)

ICSE ‘09: New Ideas and Emerging Results

Minimization

Focus debugging effort

Iteratively remove what is not necessary for reproducing the failure

8

Page 9: Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER example)

ICSE ‘09: New Ideas and Emerging Results

2-phase minimization

Time minimization

✂Data minimization

9

Page 10: Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER example)

ICSE ‘09: New Ideas and Emerging Results

Time minimization

Remove idle times

Reduce event latency

10

Page 11: Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER example)

ICSE ‘09: New Ideas and Emerging Results

Data minimization

Remove data hierarchically

1. complete files

2. pieces of files

3. individual characters ✂11

Page 12: Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER example)

ICSE ‘09: New Ideas and Emerging Results

Prototype implementation

Record / Replay

x86/libc binaries

Minimization

customizable scripts

Limitations

non-determinism

GUI inputs

ADDAAssisting the Debugging of Deployed Applications

12

Page 13: Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER example)

ICSE ‘09: New Ideas and Emerging Results

Evaluation

RQ1: How effective is ADDA at minimizing failing executions?

RQ2: How much overhead does ADDA impose?ADDA

Assisting the Debugging of Deployed Applications

13

Page 14: Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER example)

ICSE ‘09: New Ideas and Emerging Results

Subject and faults

Two real field failures from Pine’s history

address book fault

header-color fault

Pine email and news client

14

Page 15: Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER example)

ICSE ‘09: New Ideas and Emerging Results

RQ1: Minimization results

Around 10% of the recording remains after minimization

We were able to debug the failures using the minimized recording

15

Page 16: Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER example)

ICSE ‘09: New Ideas and Emerging Results

RQ2: Overhead results

Online: negligible overhead while recording

Offline: less than 75 minutes to minimize

16

Page 17: Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER example)

ICSE ‘09: New Ideas and Emerging Results

Future work

Support

GUI events

Non-determinism

Additional studies with more subjects

ADDAAssisting the Debugging of Deployed Applications

17

Page 18: Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER example)

ICSE ‘09: New Ideas and Emerging Results

Utilize passing executions

Captured failures are utilized for debugging

Captured successful executions are discarded

Can we also use them?

Record

Minimize

Captured

failure

Captured

success

Trash

18

Page 19: Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER example)

ICSE ‘09: New Ideas and Emerging Results

Address privacy issues

Captured executions can contain sensitive information

How can we sanitize sensitive information but make sure the failure still occurs?

Captured

failureCredit card numbers

Email addresses

Account names

Passwords

19

Page 20: Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER example)

ICSE ‘09: New Ideas and Emerging Results

Thank [email protected]/~clause

20