I'm orchestrating Postgres to behave as a leader-follower cluster. I've run into issues when I am scaling down a connection count for a cluster (scaling up is fine -- scaling down results in fatal errors). I use an open source tool I've written to orchestrate the cluster called Governor ( http://github.com/compose/governor). It would work if I weren't running hot_standby, but alas…I'm running with it.
I found the code which throws the fatal is actually a pre-flight test for hot_standby written in 2009 (i.e. battle tested): https://github.com/postgres/postgres/blob/efc16ea520679d713d98a2c7bf1453c4ff7b91ec/src/backend/access/transam/xlog.c#L5312-L5321 I've tested changing this value from a FATAL to a WARN. I've compiled and tested my scenario and all appears to be correct: https://github.com/compose/postgres/commit/2bdf6b36821987aadb401e1b8590ecc5b02126d8 In researching these lines of code, it appears the original FATAL code was put in place to ensure that a hot_standby is as close as possibly configured the same as the leader. This change will also allow backups taken using `pg_basebackup` to work with settings that different from the original host. Am I missing something with this change? Cheers, Chris