Cases4 cases
1 to 4 of 4
IL-0361Job searches on seek.com.au failed for 16 minutes as a Transit Gateway silently dropped 9001-byte packetsSEEK2021- Symptoms
In May 2021 some users of seek.com.au got errors when they searched for jobs, for 16 minutes. SEEK was in the middle of moving the traffic between two VPCs, the one that carried searches, from a VPC peering connection to an AWS Transit Gateway, and the team noticed quickly that search was broken.
- Trigger
In the second step of the migration, SEEK changed the routing table of the first VPC to use the transit gateway while the second VPC still routed over the peering connection, so the two directions of each connection took different paths.
- Root cause
- Component
- Contributing factor
- Detection
The team noticed soon after the routing change that search on seek.com.au was not working.
- Remediation
- Rolled back the migration of the search traffic's peering connection to the transit gateway
- Action items
- Lower the MTU of EC2 instances to 8500, on Amazon Linux 2 with a script at /sbin/ifup-local that runs whenever a network interface comes up
- Lessons
A transit gateway has a smaller MTU than a same-region peering connection, drops oversized packets silently and clamps the MSS only on packets that cross it. When a migration leaves the two directions of a TCP connection on different paths, the clamp lands on the wrong side of the handshake and large packets are lost; the fix is not to send packets larger than 8500 bytes.
- Symptoms
From 7:30 AM PST on 7 December 2021, AWS services in us-east-1 that communicate between AWS's internal network and its main network saw rising latency and errors. The AWS operations teams lost real-time monitoring data at once, and the first thing found in the logs was elevated internal DNS errors.
- Trigger
At 7:30 AM PST an automated activity that scales the capacity of one AWS service hosted in the main AWS network triggered unexpected behaviour from a large number of clients inside the internal network.
- Root cause
- Component
- Contributing factor
- Detection
The congestion immediately cut off real-time monitoring data for the AWS operations teams, who turned to logs and first identified elevated internal DNS errors.
- Remediation
- Moved internal DNS traffic away from the congested network paths
- Isolated the top sources of traffic onto dedicated network devices
- Disabled some heavy network traffic services, including EventBridge event delivery
- Brought additional networking capacity online
- Disabled the automated scaling activities that triggered the event
- Action items
- Keep the triggering scaling activities off until all remediations are deployed
- Fix the latent issue that kept networking clients from backing off
- Deploy network configuration that protects the affected networking devices in a similar congestion event
- Keep API Gateway servers healthy when the internal network is unavailable and speed up their recycling
- Release a new Service Health Dashboard that makes service impact easier to understand
- Run the support system actively across multiple AWS regions
IL-0220An overloaded AWS Transit Gateway dropped packets on 4 January 2021, and Slack's web tier saturated and went downSlack2021- Symptoms
During the Americas' morning of 4 January 2021, an external monitoring service paged Slack because error rates were creeping up. While the investigation was starting, Slack's own dashboarding and alerting service became unavailable, so responders had to work without their usual dashboards and alerts.
- Trigger
On the first working day after the holidays, Slack's traffic went from the quietest time of the year to one of its biggest days overnight, with cold client caches pulling more data than usual, and one of Slack's AWS Transit Gateways did not scale fast enough for it.
- Root cause
- Component
- Contributing factor
- Detection
An external monitoring service paged Slack when error rates started creeping up during the Americas' morning. AWS engineers were separately alerted to the packet drops by AWS's internal monitoring.
- Remediation
- Disabled automated downscaling of the web tier to keep serving capacity and allow investigation
- Cleared up the broken, partly provisioned instances that filled the autoscaling groups
- Repaired provision-service so new web tier instances could be provisioned and enter service
- AWS engineers increased the Transit Gateway capacity manually across all Availability Zones
- Action items
- AWS reviews its Transit Gateway scaling algorithms for large packet-per-second increases
- Request a preemptive upscaling of the Transit Gateways at the end of the next holiday season
- Run the dashboard service instances in the same VPC as their database to remove the Transit Gateway dependency
- Load test provision-service regularly
- Reevaluate health-checking and autoscaling configurations so they cannot overload provision-service again
- Lessons
Monitoring has to stay as independent as possible of the infrastructure it watches, or it fails when it is needed most. Here the dashboard and alerting services failed because they ran in a different VPC from their databases and so depended on the Transit Gateways. provision-service had been load tested before, but this event exceeded the earlier scale-ups.
- Symptoms
On Saturday 13 April 2013 at 8:11am Pacific Time, PagerDuty's on-call engineer was paged about one node of the notification dispatch system, and an attempt at 8:13 to bring the node back failed. Customers saw delayed notifications and 500 errors on PagerDuty's API endpoints.
- Trigger
At 7:57am Pacific Time, according to AWS, a peering point in Northern California began to degrade, causing connectivity problems for the two AWS regions that PagerDuty used as two of its three datacenters.
- Root cause
- Component
- Contributing factor
- Detection
The PagerDuty on-call engineer was paged at 8:11am about an issue with one node of the notification dispatch system, and at 8:18 monitoring detected multiple-provider failures for notifications.
- Remediation
- Restarted most of the failed coordinator processes by hand
- The notification dispatch system reached quorum again and processed all queued notifications
- Action items
- Add more logging and aggregate logs into a single searchable source
- Add a process watcher that restarts failed coordinator processes automatically
- Build a dashboard that shows inter-host connectivity
- Train engineering staff on Cassandra and ZooKeeper
- Investigate moving off one of the AWS regions to a new hosting provider and datacenter that avoids a single point of failure
- Lessons
Datacenters chosen to be independent and physically separate can still share a network peering point, and a design built to survive the loss of one datacenter did not survive losing two at once.
These 4 cases involve Transit gateway or network interconnect and Automated capacity manager. 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
Configuration change1 case
- Contributing factor
- Organisation
Software defect1 case
- Contributing factor
- Organisation
Cloud provider outage2 cases
- Component
- Contributing factor
- Organisation