> Expected Behavior: > pg_upgrade should automatically override max_slot_wal_keep_size to -1 as > required for upgrade mode.
I do not think it is within pg_upgrade's charter to modify your postgresql.conf file.
That isn't what is being asked. They simply want the override that is already in place to actually work.
However, maybe instead of having check_max_slot_wal_keep_size throw an error about this, we could make it just silently keep the value as -1. There's a nearby thread about silently ignoring inappropriate GUC settings during initdb [1], and this seems like it'd be in the same spirit. Or we could just drop the server-side check altogether, figuring that it's pg_upgrade's job to see to that.
Can't we just move this to postmaster.c ~ line 850 ?
This seems no different than wal_level and summarize_wal having a co-dependency such that intermediate invalid states must be allowed to exist so long as what the server ends up running under is valid. max_slot_wal_keep_size is sighup just like summarize_wal (and IsBinaryUpgrade behaves like a postmaster GUC)