IL-0222 Google Cloud · 2019-06-02gcpnetworking
Google Cloud US regions had heavy packet loss and some went unreachable after the network control plane was descheduled
In each Google datacenter location, the network control plane runs on several instances of Google's cluster management software, so the failure of one instance does not affect network capacity. The cluster management software also automates maintenance events, and every job is labelled with what to do during one: move to another machine, or stop and be rescheduled afterwards. Three things combined. Network control plane jobs and their supporting infrastructure in the affected regions were configured to stop during a maintenance event. The cluster management instances running the network control plane were eligible for a rare maintenance event type. And the software that starts maintenance events had a bug that let it deschedule several independent software clusters at once, even in different physical locations.
When the maintenance event started at 11:45 in one location, the automation descheduled the network control jobs and their supporting infrastructure in multiple locations. The network is designed to fail static, that is, to keep running for a while without its control plane, and it ran normally for several minutes. Then BGP routing between specific affected locations was withdrawn, which sharply cut network capacity and made some Google Cloud regions inaccessible; user impact began between 11:47 and 11:49. Packet loss lasted between 3 hours 19 minutes and 4 hours 25 minutes depending on the region, and Compute Engine, App Engine, Cloud Endpoints, Cloud Interconnect, Cloud VPN, Cloud Console, Stackdriver Metrics, Cloud Pub/Sub, BigQuery, regional Cloud Spanner instances, regional Cloud Storage buckets and G Suite in those regions were affected.
By 13:01 the root cause was known and engineers halted the maintenance automation. Bringing the network control plane back took longer because, in the locations where every instance had been descheduled, its configuration data was lost and had to be rebuilt and redistributed during a large network event. The new configuration began rolling out at 14:03, while other Google teams moved their services' traffic away from the affected regions. Network capacity started to recover at 15:19 and full service resumed at 16:10 US/Pacific. Cloud VPN in us-west2, northamerica-northeast1 and southamerica-east1 needed extra work to bring its control plane out of a fail-safe state and recovered at 16:30. Cloud Endpoints configuration pushes failed for 50% of workflows until 4 June 11:30, and after that still took up to an hour to take effect.
- Severity
- –
- Scope
- Google Cloud services on Google's US network, including Compute Engine, App Engine, Cloud Endpoints, Cloud Interconnect, Cloud VPN, Cloud Console, Stackdriver, Cloud Pub/Sub, BigQuery, Cloud Spanner and Cloud Storage, plus G Suite and other Google services
- Users affected
- –
- Region
- us-central1, us-east1, us-east4, us-west2, northamerica-northeast1, southamerica-east1
- Time to detect
- 2m
- Time to resolve
- 4h 25m
Symptoms
On Sunday 2 June 2019, with user impact beginning between 11:47 and 11:49 US/Pacific, Google Cloud projects in several US regions saw elevated packet loss from network congestion, and some regions became unreachable. Customers saw higher latency, intermittent errors and lost connectivity to instances in us-central1, us-east1, us-east4, us-west2, northamerica-northeast1 and southamerica-east1, while us-west1, Europe and Asia had no regional congestion.
Compute Engine instances in us-east4, us-west2, northamerica-northeast1 and southamerica-east1 were inaccessible for the whole incident. Between instances, us-east1 had up to 33% packet loss from 11:38 to 12:17 and up to 8% until 14:50, and us-central1 had a 9% spike that subsided by 12:05. Compute Engine admin operations returned an average of 1.2% errors. Cloud Interconnect attachments in the four inaccessible regions reported 50% to 100% packet loss and some BGP sessions went down, attachments connecting through east coast Interconnects saw 10-50% loss from backbone congestion, and Cloud VPN gateways in those regions were unreachable, while us-central1 VPN endpoints reported 25% packet loss and us-east1 endpoints 10%.
Services that depend on Google's US network failed with it. App Engine apps in the four regions were unavailable, us-central saw a 23.2% drop in requests per second, and requests that did not reach App Engine returned client timeout errors; BigQuery jobs.insert calls had a 27% error rate between 11:47 and 12:02; Cloud Pub/Sub publish and subscribe requests failed in the affected regions; Cloud Spanner in us-east4, us-west2 and northamerica-northeast1 was unavailable from 11:48 to 15:44; Cloud Console pages loaded slowly, partially or not at all; and Cloud Storage average error rates were 96.2% for us-west2, 79.3% for southamerica-east1, 62.4% for us-east4 and 43.4% for northamerica-northeast1 buckets. Stackdriver Monitoring had a 5-10% drop in requests per second, login failures to its frontend averaged 8.4%, UI components hit a 3.5% error rate when loading data, and monitoring statistics were inconsistent during the disruption. Cloud Endpoints configuration pushes failed for 50% of workflows until 4 June 11:30, and new Endpoints services returned 500 errors unless the ESP flag service_control_network_fail_open was enabled.
Google engineers were alerted two minutes after the failure began, but debugging was slowed because their tools competed for the congested network. The backup plans for that case, engineers travelling to secure facilities and lowering the priority of less critical traffic classes, added time, and the damage to tooling made it hard at first to measure impact and tell customers accurately.
On the status page, the first notice at 12:53 said Google was investigating an issue with Google Cloud Networking. The 13:45 notice reported high levels of network congestion in the eastern USA affecting multiple services in Google Cloud, G Suite and YouTube, and the 15:04 notice said the congestion was continuing.
Symptom Packet lossNetwork unreachableHigh latencyHigh error rateMonitoring outage
Root cause
Root cause Software defect
- Trigger
- At 11:45 US/Pacific a relatively rare type of datacenter maintenance event started in one physical location, and the automation that runs it descheduled logical clusters that also held network control plane jobs in other physical locations.
Detection
Google engineers were alerted to the failure two minutes after it began and started the incident process used for the most serious production incidents. The first customer notice appeared on the status page at 12:53 US/Pacific.
Remediation
- Lowered the priority of less critical network traffic classes to reduce congestion
- Halted the datacenter automation software responsible for the maintenance event
- Rescheduled the network control plane and its supporting infrastructure in each location
- Rebuilt and redistributed the lost network control plane configuration, rolling it out from 14:03
- Directed service traffic away from the affected regions
- Moved the Cloud VPN control plane in three regions out of its fail-safe state
Action items
- Keep the maintenance automation off until safeguards stop it descheduling jobs in several physical locations at once
- Harden the cluster management software to reject such requests whatever their origin
- Reconfigure the network control plane to reject maintenance requests of the type involved
- Make the network control plane in each location persist its configuration
- Let the network stay in fail static mode longer when the control plane is lost
- Review, update and test emergency response tooling and procedures, including customer communication tooling, for such network failures
- Extend continuous disaster recovery testing to this and similarly catastrophic failures
Lessons
–
Sources
- https://status.cloud.google.com/incident/cloud-networking/19009 · official-status · archived copy
References
Related cases
IL-0233A VPC control plane release broke IP alias routes in Nebius eu-west1, and Managed Kubernetes pods lost connectivityNebius · 2025same root cause · shared BGP routing, Network control plane (SDN)
IL-0347About 25% of Scaleway FR-PAR-1 hypervisors lost VPC connectivity when both VPC BGP route reflectors got stuckScaleway · 2024same root cause · shared BGP routing, Network control plane (SDN)
IL-0529New Google Cloud VMs and other instances came up without network connectivity in all zones after VPC controllers stoppedGoogle Cloud · 2024same root cause · shared Network control plane (SDN)
IL-0342DigitalOcean's AMS3, LON1 and SFO2 data centers lost Internet connectivity in repeated waves as edge routers failedDigitalOcean · 2023same root cause · shared BGP routing
IL-0344Linode's US-West data centers in Fremont and Santa Clara lost connectivity as the fibre circuits between them failedLinode · 2023same root cause · shared Backbone network (WAN)
IL-0256Basecamp was fully down twice in two days as hardware load balancers crashed and routers lost sync after failover37signals · 2020same root cause · shared Backbone network (WAN)
IL-0359Queries to Gandi LiveDNS timed out when two crashed anycast DNS nodes kept announcing all three name server addressesGandi · 2020same root cause · shared BGP routing
IL-0396New or live-migrated GCE instances, VPN tunnels and network load balancers were unreachable on public IPs for over 2hGoogle Cloud · 2017same root cause · shared Network control plane (SDN)
Check your cluster for this
For AI tools and scripts
- This case as JSON: https://incidentlib-api.benchlet.com/cases/IL-0222
- The cases most like it: https://incidentlib-api.benchlet.com/cases/IL-0222/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.