proomt

Search

Search posts, papers, and topics

Hall of Fame

Hall of FameDing Yuan et al.201458 min readpaperintermediate

Simple Testing Can Prevent Most Critical Failures

Summary

A study of 198 production failures in distributed systems (Cassandra, HDFS, etc.) found that 92% of catastrophic outages stemmed from incorrect handling of non-fatal errors. Over half of these could have been prevented by simple testing of error handling code, even without deep system understanding.

  • 92% of catastrophic failures result from incorrect handling of non-fatal errors explicitly signaled in software.
  • 58% of catastrophic failures could have been prevented by simple testing of error handling code.
  • 35% of catastrophic failures are due to trivial error handling bugs (empty, over-general abort, or FIXME/TODO comments).
  • 77% of failures are reproducible with unit tests, and almost all on 3 or fewer nodes.

Engineers building and maintaining distributed systems should care, as this paper provides concrete evidence that focusing on robust error handling and simple testing can significantly improve system reliability.

8/10

Related reading

  1. Metastable Failures in Distributed Systems

    This paper introduces and formalizes "metastable failures" in distributed systems, a class of outages where a trigger pushes a system into a bad state that persists due to a sustaining effect, even after the trigger is removed. These failures often stem from features designed for efficiency or reliability and require significant external intervention to resolve.

    Hall of Famesigops.org25 minpaperHN16112
  2. Reading postmortems

    Dan Luu surveys public postmortems and finds that most severe outages stem from a handful of recurring causes—poor error‑handling code, risky configuration changes, hardware faults, manual processes, and missing monitoring/alerting. He backs the claims with study numbers and argues engineers should focus on testing, automation, and observability to cut these failure modes.

    Hall of Famedanluu.com10 minHN2
  3. Why Do Computers Stop and What Can Be Done About It?

    Jim Gray analyzes failure reports from Tandem NonStop systems, showing that administration and software bugs cause most outages while hardware is a minor factor. He argues that modular redundancy, process‑pairs, and transaction mechanisms give software the same high availability as hardware redundancy.

    Hall of Fameazurewebsites.net27 minpaperHN236
  4. Lessons From Testing Distributed Systems

    This Jepsen blog post announces a retrospective talk on 13 years of testing distributed systems, linking to slides and a video. The post itself contains no detailed lessons or technical content.

    Jepsenjepsen.io1 min
  5. The Flaky Test Confession: “We All Know We’re Ignoring Test Failures”

    Flaky tests silently erode CI reliability, waste compute and developer time, and let real bugs slip into production. The post quantifies the cost (≈2.5 % of developer time, $5.67 per manual investigation vs $0.02 for auto‑rerun) and critiques common band‑aid approaches (retries, quarantine, manual triage). It argues that visibility—detecting flaky tests, predictive test selection, and automated t…

    Codeshipcloudbees.com5 min