A deep dive into three major Postgres production outages that originated outside Postgres itself: fsyncgate (Linux kernel silently dropping fsync errors), glibc 2.28 collation changes corrupting btree indexes, and Transparent Huge Pages causing random latency spikes. For each issue, the post explains the root cause, how symptoms manifest (often misleadingly), and concrete mitigations — including setting data_sync_retry=off, running amcheck on a schedule, and disabling THP. The post closes with a four-line checklist every new cluster should apply.

6m read timeFrom postgr.es
Post cover image
Table of contents
fsyncgate (2018)glibc 2.28 and the silent index corruptionTransparent huge pagesWhat goes into the runbook
3 Impressions