Cases4 cases
1 to 4 of 4
IL-0553CircleCI's orchestration database filled its transaction log volume, and no workflows or jobs started for 50 minutesCircleCI2026- Symptoms
On 6 October 2026 CircleCI pipelines were slow to be created and workflows and jobs were slow to start, in short bursts from 13:30 UTC and continuously from 15:30 UTC. From 15:48 to 16:38 UTC no workflows or jobs started at all, and pipelines triggered from 16:02 UTC failed.
- Trigger
Around 12:40 UTC, on top of the regular workload, anti-wraparound autovacuum runs on several of the largest tables of the orchestration service's database began writing transaction logs faster than the database could archive them.
- Root cause
- Component
- Contributing factor
- Detection
Monitoring raised short alerts about errors in the orchestration service from 10:02 UTC, each clearing on its own. At 13:35 the alerts came back together with related alerts from several other services, and after they returned around 14:30 and engineers investigated further, an incident was declared at 14:54 UTC.
- Remediation
- Changed the anti-wraparound autovacuum settings to help it finish faster
- Moved the transaction logs onto the database's main storage volume, which took the database offline from 15:47 to 16:38 UTC
- Changed database parameters to stop further maintenance runs from starting
- Changed a database setting at 18:19 UTC to cut the time each write spent waiting on storage
- Added database and server capacity to the systems that hand jobs to the execution fleet to clear the backlog faster
- Action items
- Alert on how full the transaction log volume is and on how far archiving has fallen behind
- Alert on the database maintenance that drives transaction log growth
- Review all alerts so that noisy or sensitive alerts do not hide real issues
- Tune how often and how aggressively autovacuum runs on the database
- Track the size of the largest tables over time so they stay within safe limits
- Remove the single transaction log bottleneck by splitting the service across several database instances or moving it to a distributed database
- Make CircleCI's systems wait for the orchestration service to recover instead of failing jobs after retrying
- Include specific impact and timing sooner in status page updates during long incidents
- Lessons
CircleCI says the combination of alerts should have been recognised sooner: brief error alerts that cleared on their own were treated as routine, and nothing alerted on the transaction log volume or on archiving lag. Because every write of the orchestration service went through one database and one transaction log, a backlog in that log slowed every pipeline, workflow and job.
IL-0270Discord's ScyllaDB authentication cluster overloaded during an OS upgrade, and logins failed for about 50 minutesDiscord2023- Symptoms
On 6 November 2023 at 10:52 AM PST, when an upgrade script drained all connections from zone [c] of the scylla-authentication ScyllaDB cluster, Discord's availability, measured as the share of HTTP requests that return a 200-level response, fell at once to about 25%. Users could not connect, log in, read or send messages.
- Trigger
During an OS upgrade that takes one zone of a ScyllaDB cluster offline at a time, the upgrade script drained all connections from zone [c] of scylla-authentication at 10:52 AM, while one node in the just-upgraded zone [b] had a degraded NVMe Local SSD.
- Root cause
- Component
- Contributing factor
- Detection
An incident response call had already started when the first alerts fired at 10:56 AM, four minutes after the start. The time spent by downstream service graph showed the authentication service spending far more time on user requests than normal, and the authentication alerts fired moments later.
- Remediation
- Turned off sending typing events and marking messages as read to shed load from the authentication cluster
- Waited for the zone [c] RAID rebuild instead of restarting nodes, and the two zone [c] nodes came back online at 11:41 AM
- Restarted the two zone [b] nodes one at a time
- Action items
- Double the size of the scylla-authentication cluster so each node takes half as many requests
- Rebuild scylla-authentication-b-2 with new, non-degraded disks
- Build a way to detect disk degradation that is too subtle to affect overall latency but still threatens reliability
- Move upgrade operations into a more automatic control plane for the Scylla clusters that analyses cluster state, such as cache hit rate
- Increase the redundancy of the scylla-authentication cluster; the options being explored, not yet decided, are a higher replication factor or a hot-standby cluster in another region
- Lessons
Taking a whole zone out of a three-zone cluster leaves no margin, so one additional slow node in another zone was enough to overload it. For some Scylla clusters the row cache hit rate of restarted nodes must reach a safe level before the next zone goes down, and a short zonal test beforehand gave false confidence. The small but critical authentication cluster needs to be run differently from Discord's much larger Scylla clusters, with more redundancy.
IL-0217Honeycomb's main MySQL database locked up under cache-miss reads and ran out of connections, a 68-minute total outageHoneycomb2023- Symptoms
Hours after a routine switch between two clusters of Retriever, Honeycomb's storage and query engine, late on 24 July 2023, the internal SLO for Shepherd, the ingest service, began to burn slowly. The performance was only marginally slow and inconsistent, with no good explanation, so engineers treated it as minor and left it for the morning.
- Trigger
Late on 24 July Honeycomb switched between two Retriever clusters to avoid a subtle bug, and the new cluster stopped writing the last-written timestamps the schema cache depends on. On the morning of 25 July a feature flag flip meant to move those writes back stopped the remaining writes entirely.
- Root cause
- Component
- Contributing factor
- Detection
Hours after the cluster switch, the internal SLO for the ingest service Shepherd started burning slowly. Engineers left it for the morning, when a chart showed that Retriever's database calls updating the last-written records had stopped.
- Remediation
- Flipped only the writes back to the other Retriever cluster with a feature flag, which did not fix the problem
- Set up circuit breakers that denied all Shepherd traffic with a 5xx error to protect the database
- Failed the hard-locked database over to a replica
- Restarted all Retriever hosts so they could provide data for the cache
- Set the last-written timestamp of every schema with traffic in the last day to now, so the schema store reloaded the cache
- Removed the circuit breaker and restarted the query hosts that failed internal checks
- Action items
- Finish the Retriever cluster migration and remove all code that could disable writes behind the cache
- Explore ways to strengthen the cache further
- Lower the contention put on the database during update storms from new schemas
- Stabilise the performance costs of some operations in the system
- Study instrumentation and experimentation that detect and handle such edge cases better
- Lessons
Locally good decisions combined into the outage: the query engine wrote the timestamps because it already saw all the data, the shared cache helped scale ingest and untangle the main database, the cluster switch was done to avoid a bug, frequent deploys hid the feature flag bug, pausing deploys during the investigation kept hosts from restarting, and past near-misses made the team expect a slow failover. Feature flags, frequent deploys, pausing deploys during incidents and learning from near-misses all contributed, although they are among the practices Honeycomb trusts most. For a rare lockup of this kind a database failover is the fastest recovery. Several recent Honeycomb incidents started from trying to avoid a subtle bug.
- Symptoms
On 3 June 2014, PagerDuty's notification pipeline performed poorly and some notifications were delayed after the Cassandra cluster behind it became heavily degraded. About 3% of events sent to the integration API could not be received.
- Trigger
On 3 June 2014 the Cassandra background repair process started its normal run on one node of the cluster while other high load was on the cluster; on 4 June the team restarted the postponed repair by hand.
- Root cause
- Component
- Contributing factor
- Remediation
- Reduced the load on the Cassandra cluster
- Stopped the Cassandra repair process
- Cut communication between some Cassandra nodes to stabilise the cluster
- On 4 June, deleted all in-flight data in the notification pipeline in a "factory reset"
- Brought downstream systems back into a consistent state with the emptied pipeline by hand
- Action items
- Scale the existing Cassandra nodes vertically to bigger, faster servers
- Set up multiple Cassandra clusters and spread the workloads across them
- Set system load thresholds at which the Cassandra clusters are scaled out horizontally ahead of need
- Upgrade the current and new clusters to a more recent Cassandra version
- Add more load shedding techniques to control Cassandra under high load
- Bring more Cassandra expertise in-house
- Lessons
PagerDuty concluded that its Cassandra cluster was underscaled and shared by too many services with different load and usage patterns, and that the scaling work should have come before the planned Cassandra version upgrade.
These 4 cases involve Database and PostgreSQL vacuum. kubegap audits a Kubernetes cluster for gaps like these, read-only, from Claude Code or Codex; its checks cite public reports like the ones in this library.
By root cause2
Capacity exhaustion3 cases
- Contributing factor
- Organisation
IL-0553CircleCI's orchestration database filled its transaction log volume, and no workflows or jobs started for 50 minutesCircleCI2026IL-0270Discord's ScyllaDB authentication cluster overloaded during an OS upgrade, and logins failed for about 50 minutesDiscord2023IL-0383PagerDuty's shared Cassandra cluster degraded during a repair, delaying notifications and losing incoming eventsPagerDuty2014
Software defect1 case
- Component
- Contributing factor
- Organisation