Execution reconstruction: Harnessing failure reoccurrences for failure reproduction
Reproducing production failures is crucial for software reliability. Alas, existing bug reproduction systems do not simultaneously provide properties such as efficiency, effectiveness, and accuracy for production uses. In this work, we argue this is because existing approaches over-prioritize a subset of these properties, which hurts the remaining properties.
We propose Execution Reconstruction (ER), a technique that strikes a good balance between efficiency, effectiveness and accuracy for reproducing production failures. ER uses hardware-assisted control and data tracing to shepherd symbolic execution and reproduce failures. As a key novelty, ER continuously analyzes the constraints generated by symbolic execution to identify constraint solving bottlenecks and steer runtime recording accordingly to reproduce failures.
ER reproduces failures in executions that are more than two orders of magnitude longer than what the state-of-the-art production failure reproduction systems can handle. Unlike any production failure reproduction system we are aware of, ER can reproduce fully replayable executions that can power a variety of debugging and reliabilty use cases. ER incurs on average 0.3% (up to 1.1%) runtime monitoring overhead for a broad range of real-world systems, making itpractical for real-world deployment.
Thu 21 OctDisplayed time zone: Central Time (US & Canada) change
15:40 - 17:00
|Automatically Enforcing Fresh and Consistent Inputs in Intermittent Systems|
|IOOpt- Automatic Derivation of I/O complexity bounds for affine programs|
|Integration Verification Across Software and Hardware for a Simple Embedded System|
|Execution reconstruction: Harnessing failure reoccurrences for failure reproduction|
|Discussion, Questions and Answers|