Incident Library

IL-0590 Mailgun · 2014-09-27networking

F5 load balancers cached a path MTU of 296 after Rackspace reboots, and Mailgun connections failed intermittently

Mailgun runs several environments in multiple Rackspace data centers on a hybrid cloud setup in which F5 load balancers are the primary gateway for all incoming and outgoing connections. During outages or maintenance Mailgun moves traffic between environments by changing the load balancing ratios of F5 virtual IP pools, without DNS changes. On Friday, September 26, Rackspace told Mailgun it would reboot cloud instances in ORD between Sunday, September 28, 11:00 a.m. UTC and Monday, September 29, 11:00 a.m. UTC. Mailgun prepared to switch traffic away from ORD, but on September 27 its database replicas and the traffic between environments started timing out, and Mailgun could not find why before the reboots began.

The cloud maintenance put Mailgun's F5 servers into an error condition in which they reported a path MTU of 296 for the IPs on Mailgun's networks, and the F5s of all Rackspace dedicated customers using Mailgun cached that value. The servers behind those F5s could only send packets with a minimum MTU of 512, while Mailgun's F5 enforced the smaller value, so packets were lost. The Rackspace networking team cleared the caches on Mailgun's F5s and on some dedicated customers' F5s and set up a new virtual IP for Mailgun services, and Mailgun changed DNS settings, which forced the remote F5s to clear their caches. Mailgun said all messages reported as accepted during the outage were delivered. When the post was written, Mailgun and Rackspace were still investigating the root cause of the unusually low path MTU value.

Severity
–
Scope
Connections to Mailgun: intermittent connection failures, events lost between 2:30 a.m. and 7:00 a.m. UTC, and approximately 100,000 duplicate emails sent
Users affected
A portion of Mailgun customers, including Rackspace dedicated customers using Mailgun
Region
Rackspace Chicago data center (ORD); internal traffic between Mailgun's environments in all regions
Time to detect
–
Time to resolve
–

Symptoms

On Saturday, September 27, 2014 at 6:50 p.m. UTC, Mailgun saw that all its database replicas and the internal traffic between its environments in all regions were broken and reporting timeouts. Once Rackspace began rebooting cloud instances in its Chicago data center (ORD), Mailgun customers had intermittent connection failures.

The reboots began at 1:10 a.m. UTC on September 30, and from then until 11:29 a.m. UTC customers saw intermittent connection failures, events were lost between 2:30 a.m. and 7:00 a.m. UTC, and approximately 100,000 duplicate emails were sent. A portion of Mailgun customers kept having intermittent connection loss and failures through the afternoon of Tuesday, September 30.

Mailgun had prepared to move traffic away from the ORD environment before the reboots, but it could not find the cause of the timeouts before the reboots started, so traffic was not moved in time. The source of the problem was found later, together with the Rackspace enterprise networking team.

Symptom Intermittent connection failuresIntermittent timeoutsPacket loss

Root cause

Root cause DNS or network fault

Contributing factor –
Trigger
Rackspace, Mailgun's parent company and hosting provider, rebooted cloud instances in its Chicago data center (ORD), and the cloud maintenance triggered an error condition on Mailgun's F5 load balancers.

Detection

Mailgun noticed at 6:50 p.m. UTC on September 27 that all database replicas and the internal traffic between its environments were broken and reporting timeouts.

Remediation

Action items

Lessons

–

Sources

References

Related cases

Check your cluster for this

kubegap audits a Kubernetes cluster for conditions like the ones in this case, Cloud load balancer, Database replication among them, read-only, from Claude Code or Codex. Its checks cite public reports like this one.

For AI tools and scripts

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.