IL-0278 Redis · 2016-02-08databasegcp
A weekly update put a Redis Cloud management process into an infinite loop, and most nodes of a GCP cluster failed
Redis Cloud clusters run Redis's cluster tools on bare-metal or virtual servers, each cluster hosting many isolated databases, and are built to survive the failure of a single node. Each week the DevOps team deploys an upgrade of non-critical cluster components, first to one cluster with sanity and stability testing and then one cluster at a time, cloud by cloud; the week's rollout began at 10:30 UTC. At 17:30 UTC it reached the GCP cluster us-central1-1-1.gce.garantiadata.com, where it exposed a serious bug in one of the cluster's management processes. The process locked into a resource-intensive infinite loop, and after several minutes of thrashing each server became unresponsive. One node failed at 17:41 UTC and failed over automatically; four more stopped responding at 17:45 UTC, and with a majority of nodes down the cluster could not recover by itself.
Between 17:45 and 19:30 UTC the team shut down and terminated all nodes, deleted the cluster's endpoints from its DNS zone, built new nodes from scratch without the weekly update and reconnected the original nodes' storage to them. Databases without persistence were bootstrapped and available at once; databases with persistence were bootstrapped and recovered from storage into memory, taking longer the bigger they were. Throttled DNS deletes whose retries failed had to be cleaned up by hand, which lengthened the downtime. By 19:30 UTC over 95% of affected users had service again, and at 20:38 UTC the last and largest database finished recovering from persistence.
- Severity
- –
- Scope
- Redis Cloud databases on the GCP cluster us-central1-1-1.gce.garantiadata.com were unavailable; over 95% of affected users were back by 19:30 UTC and all by 20:38 UTC
- Users affected
- Redis Cloud users with databases endpoints ending in us-central1-1-1.gce.garantiadata.com
- Region
- us-central1
- Time to detect
- –
- Time to resolve
- 2h 53m
Symptoms
On 8 February 2016 at 17:45 UTC, four nodes of the Redis Cloud cluster us-central1-1-1.gce.garantiadata.com on Google Cloud Platform stopped responding, four minutes after a first node had failed. The databases whose endpoints end in us-central1-1-1.gce.garantiadata.com went down.
The first node failed at 17:41 UTC and an automated failover handled it successfully. When four more nodes stopped responding at 17:45 UTC, a majority of the cluster had failed and automatic recovery was no longer possible, so the DevOps team started a manual recovery. During that recovery the DNS provider throttled the delete requests generated by Redis's tools, and the retries of the throttled requests were not handled correctly, leaving DNS entries that had to be removed by hand before the cluster could be relaunched.
Symptom Service outageFailover failure
Root cause
Root cause Faulty deployment
- Trigger
- The weekly upgrade of Redis Cloud's non-critical cluster components reached its first Google Cloud Platform cluster, us-central1-1-1.gce.garantiadata.com, at 17:30 UTC.
Detection
–
Remediation
- Shut down and terminated all nodes of the cluster
- Deleted all of the cluster's endpoints from its DNS zone, removing by hand the entries left by throttled deletes
- Provisioned new cluster nodes from scratch without the weekly update
- Reconnected the original nodes' storage to the new nodes so persistence-enabled databases could be recovered
- Bootstrapped and launched the databases, recovering the ones with persistence from storage
Action items
- Suspend all automatic weekly upgrades until a procedure that prevents this kind of outage is in place
- Revalidate the QA processes for DevOps code deployments
- Improve the tooling so it handles throttling of DNS requests
Lessons
–
Sources
Related cases
IL-0136A deployment that cleared an internal service's caches at peak traffic sent 20 times the normal load to the Azure OpenAI metadata backend in Sweden Central, and health checks that depended on its database restarted instances in a loop for almost six hoursMicrosoft Azure · 2026same root cause · shared In-memory cache
IL-0324Three MediaWiki deployments lost Memcached after a PHP 8.1 rollout and overloaded the External Storage database clusterWikimedia Foundation · 2025same root cause · shared In-memory cache
IL-0229bunny.net's DNS servers crashed in a loop on a corrupted routing database file and could not fetch a fix from its CDNbunny.net · 2021same root cause · shared Authoritative DNS servers and records
IL-0360DNS queries to bunny.net timed out after a failed routing update took two of four nameserver clusters offlinebunny.net · 2021same root cause · shared Authoritative DNS servers and records
Check your cluster for this
For AI tools and scripts
- This case as JSON: https://incidentlib-api.benchlet.com/cases/IL-0278
- The cases most like it: https://incidentlib-api.benchlet.com/cases/IL-0278/similar
- MCP server (Streamable HTTP, no key):
https://incidentlib-mcp.benchlet.com/mcp
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.