2025年11月18日のCloudflareの障害
https://blog.cloudflare.com/ja-jp/18-november-2025-outage/
Cloudflare
2025.11.18
この件で.unwrap()なんか使うなよ!という声が上がった
実際には、設計上panicが起き得ないのであれば使って良い
Cloudflareの場合は設計上起き得た ということですが…
@TaKOBKi
Cloudflareの障害、原因の一つはRust コード中の unwrap()がpanicを起こして、FL2側が 5xx を返したことらしい
Cloudflare outage on November 18, 2025
https://blog.cloudflare.com/18-november-2025-outage/#memory-preallocation
@techno_tanoC
なんでプロダクションコードにunwrapがあんだよ
教えはどうなってんだ教えは
@techno_tanoC
ネタを投げっぱなしにすると勘違いされそうなので解説。
別にrustのunwrapは必ずしも「使ってはいけないもの」ではないです。今回の場合、パフォーマンス最適化のために前提を置き、もし想定外ならpanicするのは合理的な実装だと思います。
https://blog.cardina1.red/2019/12/19/dont-fear-the-panic/
@techno_tanoC
今回の場合、パフォーマンス上の理由だけでなく「不正なデータを受け取った時にどうすべきか」という話でもある。必要なデータが不正だったなら、出来ることは(ログなどを吐いた後に)止まることしかない。
@techno_tanoC
もし別の言語で実装していたとしても、同様の問題は起きていたか、あるいは別の形で問題になっていたと思います。パフォーマンスの劣化や、みんな大好きバッファオーバーランとか。
@techno_tanoC
最後にちゃぶ台返しをしますが、unwrapではなくexpectを使え