Fix the handling of two GUCs during upgrade. Previously, the check_hook functions for max_slot_wal_keep_size and idle_replication_slot_timeout would incorrectly raise an ERROR for values set in postgresql.conf during upgrade, even though those values were not actively used in the upgrade process.
To prevent logical slot invalidation during upgrade, we used to set special values for these GUCs. Now, instead of relying on those values, we directly prevent WAL removal and logical slot invalidation caused by max_slot_wal_keep_size and idle_replication_slot_timeout. Note: PostgreSQL 17 does not include the idle_replication_slot_timeout GUC, so related changes were not backported. BUG #18979 Reported-by: jorsol <[email protected]> Author: Dilip Kumar <[email protected]> Reviewed by: vignesh C <[email protected]> Reviewed by: Alvaro Herrera <[email protected]> Backpatch-through: 17, where it was introduced Discussion: https://postgr.es/m/[email protected] Discussion: https://postgr.es/m/[email protected] Branch ------ REL_17_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/24f6c1bd41d0631a04cc956cc8cafa0b117ab625 Modified Files -------------- src/backend/access/transam/xlog.c | 33 ++++++++------------------------- src/backend/replication/slot.c | 12 ++++-------- src/backend/utils/misc/guc_tables.c | 2 +- src/bin/pg_upgrade/server.c | 11 ----------- src/include/utils/guc_hooks.h | 2 -- 5 files changed, 13 insertions(+), 47 deletions(-)
