惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
云风的 BLOG
云风的 BLOG
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Hacker News
The Hacker News
Martin Fowler
Martin Fowler
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
U
Unit 42
F
Full Disclosure
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Recorded Future
Recorded Future
Security Archives - TechRepublic
Security Archives - TechRepublic
阮一峰的网络日志
阮一峰的网络日志
T
Threatpost
P
Privacy International News Feed
GbyAI
GbyAI
Stack Overflow Blog
Stack Overflow Blog
MongoDB | Blog
MongoDB | Blog
I
Intezer
Recent Announcements
Recent Announcements
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
P
Privacy & Cybersecurity Law Blog
A
Arctic Wolf
博客园 - 聂微东
博客园 - 叶小钗
Cisco Talos Blog
Cisco Talos Blog
H
Help Net Security
S
Schneier on Security
Y
Y Combinator Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
The Exploit Database - CXSecurity.com
T
Tor Project blog
月光博客
月光博客
NISL@THU
NISL@THU
A
About on SuperTechFans
Spread Privacy
Spread Privacy
Blog — PlanetScale
Blog — PlanetScale
D
DataBreaches.Net
雷峰网
雷峰网
C
CXSECURITY Database RSS Feed - CXSecurity.com
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 【当耐特】
G
Google Developers Blog
W
WeLiveSecurity
P
Palo Alto Networks Blog
The Last Watchdog
The Last Watchdog
K
Kaspersky official blog
博客园 - 司徒正美
L
LINUX DO - 热门话题
小众软件
小众软件

Rust Blog

Security Advisory for Cargo (CVE-2026-5223) | Rust Blog Security Advisory for Cargo (CVE-2026-5222) | Rust Blog Project goals update — April 2026 (end of 2025H2) | Rust Blog Rust is participating in Outreachy | Rust Blog Raising the baseline for the `nvptx64-nvidia-cuda` target | Rust Blog Announcing Google Summer of Code 2026 selected projects | Rust Blog Announcing Rust 1.95.0 | Rust Blog docs.rs: building fewer targets by default | Rust Blog Changes to WebAssembly targets and handling undefined symbols | Rust Blog Announcing Rust 1.94.1 | Rust Blog Security advisory for Cargo | Rust Blog What we heard about Rust's challenges | Rust Blog Call for Testing: Build Dir Layout v2 | Rust Blog Announcing rustup 1.29.0 | Rust Blog Announcing Rust 1.94.0 | Rust Blog 2025 State of Rust Survey Results | Rust Blog Rust debugging survey 2026 | Rust Blog Update on the October 15, 2018 incident on crates.io Announcing Rust 1.29.2 Announcing Rust 1.29 Announcing Rust 1.28 What is Rust 2018? Announcing Rust 1.27.2 Announcing Rust 1.27.1 Security Advisory for rustdoc Announcing Rust 1.27 Announcing Rust 1.26.2 Announcing Rust 1.26.1 Rust turns three Announcing Rust 1.26 The Rust Team All Hands in Berlin: a Recap Increasing Rust’s Reach 2018 Announcing Rust 1.25 Rust's 2018 roadmap Announcing Rust 1.24.1 Announcing Rust 1.24 The 2018 Rust Event Lineup Announcing Rust 1.23 New Year's Rust: A Call for Community Blogposts Rust in 2017: what we achieved Announcing Rust 1.22 (and 1.22.1) Fearless Concurrency in Firefox Quantum Announcing Rust 1.21 impl Future for Rust Rust 2017 Survey Results Announcing Rust 1.20 Announcing Rust 1.19 The 2017 Rust Conference Lineup Rust's 2017 roadmap, six months in Increasing Rust’s Reach Announcing Rust 1.18 Two years of Rust The Rust Libz Blitz Launching the 2017 State of Rust Survey Announcing Rust 1.17 Announcing Rust 1.16 Rust's language ergonomics initiative Announcing Rust 1.15.1 Rust's 2017 roadmap Announcing Rust 1.15 Announcing Rust 1.14 Announcing the First Underhanded Rust Contest Announcing Rust 1.13 Announcing Rust 1.12.1 Announcing Rust 1.12 Incremental Compilation Announcing Rust 1.11 Shape of errors to come The 2016 Rust Conference Lineup Announcing Rust 1.10 State of Rust Survey 2016 Announcing Rust 1.9 One year of Rust Taking Rust everywhere with rustup Launching the 2016 State of Rust Survey Cargo: predictable dependency management Introducing MIR Announcing Rust 1.8 Announcing Rust 1.7 Announcing Rust 1.6 Announcing Rust 1.5 Announcing Rust 1.4 Announcing Rust 1.3 Rust in 2016 Announcing Rust 1.2 Rust 1.1 stable, the Community Subteam, and RustCamp Announcing Rust 1.0 Abstraction without overhead: traits in Rust Rust Once, Run Everywhere Mixing matching, mutation, and moves in Rust Fearless Concurrency with Rust Announcing Rust 1.0 Beta Announcing Rust 1.0.0.alpha.2 Rust 1.0: status report and final timeline Announcing Rust 1.0 Alpha Rust 1.0: Scheduling the trains Yehuda Katz and Steve Klabnik are joining the Rust Core Team Cargo: Rust's community crate host Stability as a Deliverable Road to Rust 1.0
docs.rs outage postmortem | Inside Rust Blog
Pietro Albini on behalf of the infrastructure team · 2019-10-24 · via Rust Blog

At 2019-10-21 01:38 UTC the docs.rs website went down because no available disk space was left on the server hosting the application. Crate builds were failing since 2019-10-20 00:55 UTC due to the same reason.

Root cause of the outage

docs.rs needs to store the built documentation on the filesystem before uploading it to the database, and it does so in the /opt/docs-rs-prefix/documentations directory. docs.rs never cleared that directory though, so over time it started to increase its size until it caused this outage. Code to periodically purge temporary directories was present, but it was never configured to purge the one which caused the outage.

Resolution

As the directory doesn’t contain any persistent data we cleared it and the web server was restarted. Once we were confident the situation was resolved all the crates that failed due to the outage were queued for a rebuild.

Postmortem

The increased disk usage was gradual over weeks, slowly reaching 100% and causing the outage. While monitoring systems were in place and recorded graphs of the increase, no alert was configured so nobody noticed the problem. We need to add alerts when disk usage reaches 90%, so the problem can be investigated and dealt with on time.

Crates started to fail to build a day earlier, and close to no builds were successfully completed since then. We need to setup alerts when most of the builds are failing: as we don’t have the necessary metrics at the moment to reliably alert we'll have to add extra instrumentation as well.

Our response was slower due to issues with our on-call rotation for the service. The primary contacts don’t have the level of access required to increase the disk space of the instance (the temporary fix that was investigated at first but discarded after the discovery nobody awake could do it), and the backup contacts don’t have any production access or expertise on docs.rs.

Timeline of events

Unless otherwise noted all events happened on 2019-10-21, and all times are in UTC.

  • 2019-10-20 00:55: crate builds started failing due to the low disk space
  • 01:38: alerts fired for the docs.rs website being down, ashleygwilliams (backup contact) got paged
  • 01:39: QuietMisdreavus joins into the operations channel
  • 01:39: QuietMisdreavus found the reason for the outage (full root partition)
  • 01:52: ashleygwilliams proposed to increase disk space, nobody with permissions required to so was awake or available though
  • 01:56: ashleygwilliams contacts Mark-Simulacrum, who has the access required to increase disk space
  • 01:57: QuietMisdreavus found the directory taking up all the disk space
  • 02:00: QuietMisdreavus removed the directory taking up all the disk space
  • 02:03: QuietMisdreavus restarted the web server
  • 02:06: CDN propagated the changes, docs.rs back online
  • 02:06: Mark-Simulacrum joins into the operations channel
  • 08:19: pietroalbini added builds failed during the outage back into the queue
  • 19:27: builds of the crates failed during the outage finished

Action items

  • Update the docs.rs source code to cleanup the offending directory automatically.
  • Add alerts when the available disk space on a server is below 10%.
  • Add alerts when most of the builds are failing.
  • Revisit the on-call rotation to make sure everyone on it has the permissions to either react to the incidents or escalate.