Incident Library

IL-0298 Wikimedia Foundation · 2025-03-31database

Wikimedia edits failed for 38 minutes when sessionstore Cassandra nodes in both data centres crashed on full disks

Sessionstore runs on Cassandra in both data centres. An increase in session writes filled the storage devices of its Cassandra nodes, and behind it was an unusual workload of session overwrites at a high rate. Cassandra's storage is log-structured, so an overwrite is not done in place and the overwritten value has to be garbage collected during compaction; the overwrites came faster than compaction could clear them before the disks ran out of space. Enough nodes crashed from disk exhaustion that clients could not make quorum, and from 02:58 UTC edits failed. The investigation was still going on, but the rollout of SUL3 correlates strongly, and before the incident the sessionstore cluster had been seen as heavily over-provisioned.

At 03:32 responders decided to wipe the storage, which removed all sessions. By 03:36 the storage was wiped, Cassandra was restarted and edits began to flow again, back to steady rates by about 03:40. The incident fell in the early hours of a Monday UTC, which delayed the response, and the mitigation of truncating storage is itself disruptive, though less so than a long edit outage.

Severity
–
Scope
Edits failed for the whole outage; all sessions were removed when the storage was wiped
Users affected
–
Region
Both data centres
Time to detect
5m
Time to resolve
38m

Symptoms

At 02:58 UTC on 31 March 2025, the sessionstore service in both Wikimedia data centres began returning 500 errors and edits failed. MediaWikiEditFailures (session loss) fired as critical at 03:03, and SessionStoreErrorRateHigh paged at 03:04.

At 03:18 responders found many Cassandra nodes down, so sessionstore clients could no longer achieve quorum. At 03:22 they identified disk space exhaustion as the cause, with storage use trending upward since about 2025-03-10. The page only said that there were many HTTP errors; no automated alert covered the disk utilisation of the Cassandra nodes or its growth rate.

Symptom High error rateService outageNode disk fullData loss

Root cause

Trigger
A rise in session writes, made up of session overwrites at a high rate, filled the storage of the sessionstore Cassandra nodes. The review says the rollout of SUL3 correlates strongly with it.

Detection

MediaWikiEditFailures (session loss) fired as critical at 03:03 UTC, and SessionStoreErrorRateHigh, a high 5xx rate alert, paged the batphone at 03:04. Users also reported the problem in task T390512.

Remediation

Action items

Lessons

The storage growth before the node failures made their timing predictable, so an alert on high storage utilisation well in advance would have given a chance to act before users were affected, and an alert on Cassandra node failures would have told responders more than an HTTP error rate alert. A cluster seen as heavily over-provisioned can still grow quickly and unsustainably under an unusual workload.

Sources

Related cases

Check your cluster for this

kubegap audits a Kubernetes cluster for conditions like the ones in this case, Database among them, read-only, from Claude Code or Codex. Its checks cite public reports like this one.

For AI tools and scripts

The API needs no key. The MCP server offers search_incidents, get_incident, list_incidents, get_topic and vocab; both are explained on API and MCP.