Graph
Cases3 cases
1 to 3 of 3
IL-0432AutoReserve notifications silently went unsent as Memorystore for Redis 3.2 rejected writes with OOM below its limitHello Inc.2026- Symptoms
A bug report said that some reservation notifications in the AutoReserve restaurant reservation service never arrived. Of the several kinds of notification sent as a reservation progresses, only one kind sometimes arrived and sometimes did not.
- Root cause
- Component
- Contributing factor
- Detection
A bug report from AutoReserve said that some reservation notifications were not arriving.
- Remediation
- Scaled the Memorystore for Redis instance from 8 GiB to 16 GiB, which did not stop the write rejections
- Upgraded Redis from 3.2 to 7.2, which removed the fragmentation and stopped the write rejections
- Moved the notification sent status from Redis to the relational database
- Action items
- Consider enabling active defrag if physical memory use rises above 1.3 times logical memory use
- Lessons
The logs and the instance page metrics did not show the cause; it took looking inside Redis with INFO memory to see physical memory far above logical memory. A cache is a place for values that can be rebuilt if lost and whose writes may fail, so the sent status, which had to persist and be decided once under concurrent processing, belonged in the relational database.
- Symptoms
From 17:12 UTC on 12 May 2026, error rates rose at the same time across GitLab.com's web, Git, API and CI runner services. Users got frequent 500 errors, failed or stuck CI pipelines, authentication failures and unreliable Git access, and a Prometheus Alertmanager alert opened the incident at 17:15.
- Trigger
Earlier on 12 May, as a mitigation for a previous incident, INC-10084, a Sidekiq queueing apdex SLO violation on shard catchall-b, jobs of AuditEvents::AuditEventStreamingWorker were deferred. The deferred audit event jobs then piled up in the Redis Sidekiq cluster.
- Root cause
- Component
- Contributing factor
- Detection
A Prometheus Alertmanager alert reported the incident at 17:15:10 UTC, three minutes after impact began. A follow-up asks why the redis-sidekiq memory alert did not page, and the review says some signals did not reach the right on-call people.
- Remediation
- Restarted and force-reset the two unresponsive Redis Sidekiq nodes
- Stopped each Redis Sidekiq VM in turn and resized it to c2-standard-16, doubling memory and CPU
- Re-enabled AuditEventStreamingWorker instead of deferring it
- Action items
- Investigate why the redis-sidekiq memory alert did not page
- Establish the root cause, failure mode and remediation status of the WebHookWorker poison pill
- Give mitigations that disable safety limits an explicit owner and a deadline for re-evaluating them
- Stop AuditEvents::AuditEventStreamingWorker from causing recurring incidents
- Create a runbook for AuditEventStreamingWorker
- Address PG connection pool saturation
- Lessons
Broad degradation across web, Git, authentication, CI runners, Sidekiq and the internal API made it hard to settle on one cause and explain it clearly. The customer symptom of pipelines stuck in created was hard to measure in real time, and the dashboards that would have answered it were not obvious to on-call responders. Some alerts did not reach the right on-call people, and hosts that hung on login slowed diagnosis and made changes riskier. Redis-sidekiq under memory saturation forces choices between availability and data loss that are hard to make during an incident and call for guardrails and design changes.
IL-0453Hakuna API latency spiked every day during the ElastiCache Redis backup as memory filled and the backup went forklessHyperconnect2022- Symptoms
The service API latency of Hyperconnect's Hakuna rose sharply at a certain time, periodically. The per-dependency latency analysis in the APM showed that a bottleneck in Redis caused it, but no deployment and no change in traffic pattern could have affected how Redis was used.
- Trigger
The daily ElastiCache backup on the primary node ran while available memory was insufficient, so ElastiCache used a forkless backup that slowed user requests.
- Root cause
- Component
- Contributing factor
- Detection
A latency graph showed the service API latency spiking periodically, and the APM's per-dependency latency analysis pointed at Redis.
- Remediation
- Moved the ElastiCache backup from the primary node to the secondary node
- Changed the code so data stored without a TTL is stored with one
- Replaced the Redis Hash CrudRepository usages with a CustomRepository built on RedisTemplate
- Ran a script that deleted the unneeded data already stored, freeing 58 GB on 3 databases
- Lessons
The team says its Redis operation and monitoring had gaps, and lists what to watch: use a relational database when data has relationships or must be searched by value; write data that must be durable to on-disk storage rather than Redis; keep available memory at 50% or more when ElastiCache snapshots must be taken; take care that O(n) commands such as DEL on a collection do not stall production Redis; and check regularly for unnecessary I/O between the application and the database. Spring Data Redis repositories, which manage secondary indexes in the framework, suit workloads that need no TTL and need fast queries.
These 3 cases involve In-memory cache and Database backups and snapshots. 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 cause1
Capacity exhaustion3 cases
- Contributing factor
- Organisation
IL-0432AutoReserve notifications silently went unsent as Memorystore for Redis 3.2 rejected writes with OOM below its limitHello Inc.2026IL-0290GitLab.com's Redis Sidekiq cluster ran out of memory and lost quorum, causing 500 errors and a 12 million job backlogGitLab2026IL-0453Hakuna API latency spiked every day during the ElastiCache Redis backup as memory filled and the backup went forklessHyperconnect2022