IPA: Error Propagation Analysis of Multithreaded Programs Using Likely Invariants
Abraham Chan*, Stefan Winter♰, Habib Saissi♰, Karthik Pattabiraman*, Neeraj Suri♰ *The University of British Columbia
♰Technische Universität Darmstadt
IPA: Error Propagation Analysis of Multithreaded Programs Using - - PowerPoint PPT Presentation
IPA: Error Propagation Analysis of Multithreaded Programs Using Likely Invariants Abraham Chan*, Stefan Winter , Habib Saissi , Karthik Pattabiraman*, Neeraj Suri * The University of British Columbia Technische Universitt
Abraham Chan*, Stefan Winter♰, Habib Saissi♰, Karthik Pattabiraman*, Neeraj Suri♰ *The University of British Columbia
♰Technische Universität Darmstadt
Background Motivating Example Methodology Evaluation Conclusion
Background 2 Error Propagation Analysis
Background Motivating Example Methodology Evaluation Conclusion
Background 3
Background Motivating Example Methodology Evaluation Conclusion
2. int a = x - 3; 3. if (a > 0) { 4. x = 1; 5. } else { 6. x = 2; 7. } 8. a = a + 5; 9. return x;
Motivating Example 4
Trace for x = 4
Background Motivating Example Methodology Evaluation Conclusion
2. int a = x - 3; 3. if (a < 0) { *Fault* 4. x = 1; 5. } else { 6. x = 2; 7. } 8. a = a + 5; 9. return x;
Motivating Example 5
Faulty Trace Golden Trace Traces for x = 4
Background Motivating Example Methodology Evaluation Conclusion
2. int a = x - 3; 3. if (a > 0) { 4. x = 1; 5. } else { 6. x = 2; 7. } 8. a = a + 5; 9. return x;
Motivating Example 6
Thread 1
Thread 2
Traces for x = 4 on 2 threads Who to trust? 1, 2, 3, 4, 5, 6 1, 4, 5, 6, 2, 3
Background Motivating Example Methodology Evaluation Conclusion
Methodology 7
Background Motivating Example Methodology Evaluation Conclusion
2. int a = x - 3; 3. if (a > 0) { 4. x = 1; 5. } else { 6. x = 2; 7. } 8. a = a + 5; 9. return x;
8
x == 4 Daikon Invariants inferred at x = 4 x == 1, a >
Methodology
Background Motivating Example Methodology Evaluation Conclusion
2. int a = x - 3; 3. if (a < 0) { *Fault* 4. x = 1; 5. } else { 6. x = 2; 7. } 8. a = a + 5; 9. return x;
9
x == 4 Faulty Trace
x == 1, a > 0
Methodology
Daikon Invariants inferred at x = 4
Background Motivating Example Methodology Evaluation Conclusion
2. int a = x - 3; 3. if (a < 0) { *Fault* 4. x = 1; 5. } else { 6. x = 2; 7. } 8. a = a + 5; 9. return x;
10
x == 4 Invariants inferred at x = 4 x == 1, a >
Methodology Fault has propagated through the function.
Background Motivating Example Methodology Evaluation Conclusion
Methodology 11
Background Motivating Example Methodology Evaluation Conclusion
Compilation Instrumentation Profiling Fault Injection Golden Trace Faulty Trace Compare Program Inputs
12 Methodology
Background Motivating Example Methodology Evaluation Conclusion
Compilation Instrumentation Profiling Fault Injection Golden Trace Faulty Trace
Fault Detection
Program Inputs Invariant Inference Methodology
Test Oracle
13
Background Motivating Example Methodology Evaluation Conclusion
Methodology 14
Background Motivating Example Methodology Evaluation Conclusion
15
Evaluation
Background Motivating Example Methodology Evaluation Conclusion
Evaluation 16
Background Motivating Example Methodology Evaluation Conclusion
▷ Common software bugs that are hard to detect through regression or unit tests [Vipindeep et al.] ▷ Faults Considered:
Evaluation 17
Background Motivating Example Methodology Evaluation Conclusion
Evaluation 18
10 20 30 40 50 60 70 80 90 100 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Number of Likely Invariants Number of Profiling Runs Swaptions Nbds Blackscholes Quicksort Streamcluster Nullhttpd
Background Motivating Example Methodology Evaluation Conclusion
Evaluation 19
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Fault Coverage Fault Type
Quicksort
SDC Crash/Hang Benign
Background Motivating Example Methodology Evaluation Conclusion
Evaluation
20 Setup Fault Detection
Background Motivating Example Methodology Evaluation Conclusion
Conclusion 21
Background Motivating Example Methodology Evaluation Conclusion
traces
applications ▷ Available at: http://github.com/DependableSystemsLab/LLFI-IPA ▷ Contact: http://ece.ubc.ca/~abrahamc/
Conclusion 22