Cases3 cases
1 to 3 of 3
IL-0380A compaction change in InfluxDB Cloud us-east-1 dropped data from compacted files, and queries missed data for weeksInfluxData2026- Symptoms
From 9 February 2026, InfluxDB Cloud customers on the AWS us-east-1 cluster prod101-us-east-1 found that some recent data did not show up in query responses. The first support ticket about data availability came in on 9 February, the day a compaction change was deployed, and more tickets followed on 10 February.
- Trigger
On 9 February 2026 InfluxData deployed to prod101-us-east-1 a compaction change that runs several compaction jobs in parallel on one partition, each on a subset of the data chosen by org id prefix.
- Root cause
- Component
- Contributing factor
- Detection
Tickets about data availability were raised, the first on 9 February and more on 10 February, when the status page reported that some recent data was not showing up in query responses.
- Remediation
- Rolled back the compaction change
- Restored recent data first, rebuilt from the Kafka logs
- Changed the restoration process to make historical data recovery more efficient
- Restored historical data from the weekly TSM snapshots
- Kept the cluster online and restored data incrementally so ingest and queries could continue
- Action items
- Expand test coverage for changes to critical storage components such as the compactor, with scenarios closer to production-scale workloads
- Strengthen safeguards around compaction so failures are detected and handled safely
- Review restoration workflows and procedures to reduce elevated TTBR and slow queries during large restores
- Revisit the backup and restore strategy to speed up cluster-wide restorations
IL-0506UC Berkeley DataHub logins failed and students got empty home directories after the JupyterHub database was overwrittenUC Berkeley2017- Symptoms
At about 1 AM on 9 February 2017, UC Berkeley's DataHub was reported down: users trying to log in got a proxy error. The hub pod was running, but its log was full of sqlite errors.
- Trigger
While debugging, an operator ran `.save jupyterhub.sqlite` in sqlite3 inside the hub pod without having attached the database, which replaced the JupyterHub database file with an empty one.
- Root cause
- Component
- Contributing factor
- Detection
DataHub was reported down at about 1 AM, when users got a proxy error at login. At 1:12 AM a user reported that he could log in but all his notebooks were gone.
- Remediation
- Scaled the hub to 0 replicas
- Rebuilt the JupyterHub sqlite database by matching Kubernetes PVC names back to user ids
- Set cookie_id to null instead of a dummy value and attached the rebuilt database to the hub
- Changed the cookie secret in the hub pod and restarted it to log all users out
- Deleted all user pods to log everyone out
- Ran a script that filled in cookie_id for all users, restarted the hub and deleted all user pods again
- Dropped the new users with a '.' in their name and renamed the older users from '-' to '.'
- Action items
- Report upstream that JupyterHub uses only part of the cookie secret and discards the rest
- Report upstream that the cookie_id column of the users table should have UNIQUE and NOT NULL constraints
- Ask KubeSpawner to support username hashes in PVC and pod names so the names stay the same when the database is deleted
- Ask OAuthenticator to support using the id from the Google authenticator as the user id, giving stable user ids
- Switch to Google Cloud SQL, a hosted and managed MySQL database
- Take regular and tested backups of the database
- Start an operational FAQ of things to do and not to do
- Set up better monitoring and paging
- Document escalation procedures explicitly
IL-0215Twilio's billing Redis master lost all balances and went read-only, and auto-recharge charged customer cards repeatedlyTwilio2013- Symptoms
At 2:39 AM PDT (9:39 UTC) on 18 July 2013, services that relied on the redis-master of Twilio's billing system began to fail because the load on its host had become extreme. At 2:42 AM PDT monitoring alerted the on-call engineers to a failure in the Redis cluster.
- Trigger
At 1:35 AM PDT on 18 July a loss of network connectivity disconnected all billing redis-slaves from the redis-master at once, and all of them requested a full synchronization at the same time. On-call engineers then restarted the overloaded redis-master.
- Root cause
- Component
- Contributing factor
- Detection
At 2:42 AM PDT monitoring alerted the on-call engineers to a failure in the Redis cluster. At 3:28 AM PDT the billing system monitoring reported the anomalous charges, and at 12:36 PM PDT monitoring detected the recurrence.
- Remediation
- Restarted the redis-master to relieve the high load, which loaded a wrong configuration
- Took the billing system offline to stop further credit card charges
- Restored service to all suspended accounts
- Restored the lost account balances from the independent double-bookkeeping record in the relational datastore
- Took billing offline again after the recurrence and reactivated the newly suspended accounts
- Refunded all erroneous credit card charges
- Gave all affected accounts a credit of 10% of their last 30 days of spend
- Replaced the original Redis cluster and corrected the redis-master configuration
- Activated the billing system progressively for groups of customer accounts
- Action items
- Disable Redis restarts on the redis-master and recover the master by pivoting a slave instead
- Add fail-safes so the billing system neither suspends accounts nor charges cards when balances are missing or cannot be written
- Validate the billing system against the double-bookkeeping databases in real time
- Lessons
Losing the in-flight balances and the ability to write balances at the same time exposed a flaw in the auto-recharge system: it failed in a dangerous way, charging cards and suspending accounts instead of stopping.
These 3 cases involve Database and In-memory cache. 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 cause3
Faulty deployment1 case
- Contributing factor
- Organisation
Operator error1 case
- Organisation
Configuration change1 case
- Component
- Contributing factor
- Organisation