An evaluation of the recovery-related properties of software faults.
Subhachandra Chandra, Peter M. Chen · 2000
In building systems that can survive random software failures, system designers make assumptions about the behavior of software faults. This is done to make the problem more manageable. The assumptions designers make are that failures caused by software faults follow the fail-stop model and that a majority of software faults are activated in a non-deterministic manner. Despite the widespread use of these assumptions, they have never been comprehensively evaluated for failures caused by software faults. We evaluated the fail-stop assumption by injecting faults into three commonly used applications and measuring the recovery rates of commonly used recovery mechanisms. Our evaluation shows empirically that 7%--27% of failures caused by software faults violate the fail-stop model. Further, the presence of generic-recovery mechanisms increases the number of fail-stop violations. We evaluated the non-determinism assumption by analyzing bug reports for three widely used open-source applications. Our evaluation shows that over 75% of the faults are not dependent on the environment. Therefore, these faults are activated in a deterministic fashion and thus will not be recovered by generic recovery mechanisms. The results presented in this dissertation call into question the applicability of the fail-stop and non-deterministic assumptions about failures caused by software faults for recovery purposes.