State of Exception(s)
summary
Cloudflare returns many 500s from about 11:20 UTC to 17:06 UTC after a generated data file doubles expected size and exhausts memory causing process crashes; investigation points to Rust code calling unwrap which panics rather than returning errors, and a suggestion to prefer expect or propagate the Result with the question mark operator; compares C’s manual cleanup, Python’s exceptions and Go’s nil checks, and argues Rust’s compile‑time error model trades runtime unwinding for forced handling.
AI-written summary · about
chapters (12)
- 0:00Introduction
- 1:10Cloudflare’s Rust panic outage
- 3:45Error handling goals
- 5:09Error handling in C
- 8:23Using goto for errors
- 10:09Python exceptions trade-offs
- 13:22Rust’s Result type
- 17:39Was unwrap justified
- 19:25Rust forces acknowledgment
- 21:10Complex systems failures
- 24:17Human role in systems
- 25:22Q&A
related talks
29mSelf-Destructing Feature Flags
33mA Tale of Two System Crashes: Innovation and Accidental Chaos
01h 00mPanel: Programming Languages in the Era of the Cloud
31mPixels, Promises, and Panic - Horror Stories of Production Nightmares
22mBuilding Cloud-native applications with Rust - the good, the bad and the ugly
38mAn Incrementally Spicier rust-analyzer
40mLessons from two decades of writing bad code
35mThe worst Ruby codes I've seen in my life
