$RodHat_
An empty office chair under a desk lamp at night

Rod's Tales

War stories. His own fuckups included — especially his own.

a close up of a rack of computer equipment

The storage was fine. We were swapping.

Three weeks, two engineers, one open storage vendor ticket, and roughly forty collective hours chasing read latency on a ZFS pool. The pool was fine the whole time. There was a swapfile nobody remembered adding seven months earlier.

Editorial card: The change was correct. Deploying it to every region simultaneously was not.

The change was correct. Deploying it to every region simultaneously was not.

A one-line config change, reviewed, tested, and correct in every environment we tried it in. It went to all six regions in the same rollout because config isn't code, and config doesn't need a staged rollout. It does now.

Editorial card: The alert had been firing for eight months and it was right the whole time

The alert had been firing for eight months and it was right the whole time

A rule that pages nightly and gets acknowledged nightly isn't monitoring, it's a ritual. We had trained an entire team to dismiss a specific alert without reading it, and then it started telling us about something new.

Amber field-manual diagram of a dark dashboard beside a live terminal reading the kernel directly

The observability platform was down during the outage. Good. Now do it with your hands.

A junior engineer froze during a production fire because the SaaS dashboard that watches production was part of the fire. RodHat on the tools that were on every Unix box before the kid was born, the racket that sold competence back to us as a monthly invoice, and why the fire isn't out.

Amber field-manual diagram showing a green health light disconnected from a failed service path

The health check was green because it was checking the wrong damn thing

A service can answer HTTP 200 while its queue is wedged, its database writes are failing, and every useful request is dying. RodHat on health checks that prove process existence instead of service capability.

Editorial card: Staging had its own everything, except the one thing that mattered

Staging had its own everything, except the one thing that mattered

Separate servers, separate config, separate deploy pipeline, a big banner saying STAGING. And a database connection string that pointed, through two layers of indirection, at production. We found out during a load test.

Editorial card: We wrote the retry logic to survive a blip. It turned a blip into four hours.

We wrote the retry logic to survive a blip. It turned a blip into four hours.

One backend got slow for ninety seconds. Every client retried, in lockstep, three times, with no jitter. The retries were larger than the original traffic, the backend never recovered, and every fix we tried made it worse until we did the thing nobody wanted to do.

Editorial card: The temporary NFS mount that ran production for six years

The temporary NFS mount that ran production for six years

Somebody stood it up in an afternoon to unblock a launch. It had no monitoring, no owner, no backup, and no entry in any diagram. It survived two datacentre moves, a company acquisition, and every engineer who knew it existed.

Editorial card: The billing job ran twice for six weeks and the totals still balanced

The billing job ran twice for six weeks and the totals still balanced

No errors. No alerts. The reconciliation report matched every single day. And a few hundred customers were being double-charged, because the job that generated the charges and the job that verified them were the same code with the same bug.

Editorial card: The migration was flawless. The TTL was 86400.

The migration was flawless. The TTL was 86400.

Six weeks of planning, a rehearsed cutover, and a maintenance window we finished forty minutes early. Then a fifth of our traffic kept arriving at a datacentre we'd already started decommissioning, for a full day, and there was nothing whatsoever we could do about it.

a close-up of a server room

The microservice that should have been a function call, and the eighteen months it took anyone to say so

An architecture rant, grounded in a real bad design RodHat watched calcify for a year and a half before anyone had the standing to kill it.

Editorial card: The restore worked perfectly and we still lost eleven days

The restore worked perfectly and we still lost eleven days

We tested our backups. Monthly, documented, signed off. The restore ran clean, the checksums matched, the database came up on the first try. And the data in it was eleven days old, because for eleven days the job had been backing up a directory nobody was writing to any more.

a rack of servers in a server room

The Friday deploy that ate my weekend, and whose fault it actually was (mine)

A sysadmin war story about a Friday-afternoon deploy, a silent DNS TTL assumption, and the two-day outage it caused. RodHat owns every part of it.