Efficient Reproduction of Fault-Induced Failures in Distributed Systems with Feedback-Driven Fault Injection
- Jia Pan ,
- Haoze Wu ,
- Tanakorn Leesatapornwongsa ,
- Suman Nath ,
- Peng Huang
ACM SOSP 2024 |
Organized by ACM
Debugging a failure usually requires reproducing it first. This can be hard for failures in production distributed systems, where bugs are exposed only by some unusual faulty events. While fault injection testing becomes popular, existing solutions are designed for bug finding. They are ineffective and inefficient to reproduce a specific failure during debugging.
We explore a new type of fault injection technique for quickly reproducing a given fault-induced production failure in distributed systems. We present a tool, Anduril, that uses static causal analysis and a novel feedback-driven algorithm to quickly search the enormous fault space for the root-cause fault and timing. We evaluate Anduril on 22 real-world complex fault-induced failures from five large-scale distributed systems. Anduril reproduced all failures by identifying and injecting the root-cause faults at the right time, in a median of 8 minutes.