summaryrefslogtreecommitdiff
path: root/src/bin/pg_upgrade/server.c
diff options
context:
space:
mode:
authorAmit Kapila2025-07-11 05:16:43 +0000
committerAmit Kapila2025-07-11 05:16:43 +0000
commit72e6c08fea7cf59f5166e138aab927ad87570aa4 (patch)
tree661b2b2e2fae73f6361e34a138208ff72be8b100 /src/bin/pg_upgrade/server.c
parent4cff01c4a3472ecd2a53f957f13ab20a2970db4c (diff)
Fix the handling of two GUCs during upgrade.HEADmaster
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]
Diffstat (limited to 'src/bin/pg_upgrade/server.c')
-rw-r--r--src/bin/pg_upgrade/server.c18
1 files changed, 0 insertions, 18 deletions
diff --git a/src/bin/pg_upgrade/server.c b/src/bin/pg_upgrade/server.c
index 873e5b5117b..7eb15bc7d5a 100644
--- a/src/bin/pg_upgrade/server.c
+++ b/src/bin/pg_upgrade/server.c
@@ -242,24 +242,6 @@ start_postmaster(ClusterInfo *cluster, bool report_and_exit_on_error)
appendPQExpBufferStr(&pgoptions, " -c synchronous_commit=off -c fsync=off -c full_page_writes=off");
/*
- * Use max_slot_wal_keep_size as -1 to prevent the WAL removal by the
- * checkpointer process. If WALs required by logical replication slots
- * are removed, the slots are unusable. This setting prevents the
- * invalidation of slots during the upgrade. We set this option when
- * cluster is PG17 or later because logical replication slots can only be
- * migrated since then. Besides, max_slot_wal_keep_size is added in PG13.
- */
- if (GET_MAJOR_VERSION(cluster->major_version) >= 1700)
- appendPQExpBufferStr(&pgoptions, " -c max_slot_wal_keep_size=-1");
-
- /*
- * Use idle_replication_slot_timeout=0 to prevent slot invalidation due to
- * idle_timeout by checkpointer process during upgrade.
- */
- if (GET_MAJOR_VERSION(cluster->major_version) >= 1800)
- appendPQExpBufferStr(&pgoptions, " -c idle_replication_slot_timeout=0");
-
- /*
* Use -b to disable autovacuum and logical replication launcher
* (effective in PG17 or later for the latter).
*/