Re: A recent message added to pg_upgade
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Dilip Kumar <dilipbalaut@gmail.com>
Cc: Amit Kapila <amit.kapila16@gmail.com>,
Alvaro Herrera <alvherre@alvh.no-ip.org>,
Kyotaro Horiguchi <horikyota.ntt@gmail.com>, smithpb2250@gmail.com,
bharath.rupireddyforpostgres@gmail.com,
pgsql-hackers@lists.postgresql.org
Date: 2025-07-07T17:52:56Z
Lists: pgsql-hackers
Dilip Kumar <dilipbalaut@gmail.com> writes: >> IMHO we can just query the 'max_slot_wal_keep_size' after >> start_postmaster() and check what is the final resultant value. So now >> we will only throw an error if the final value is not -1. And we can >> remove the hook from the server all together. Thoughts? > I could come up with an attachment patch. I don't love this patch. It's adding more cycles and more complexity to pg_upgrade, when there is a simpler and more direct solution: re-order the construction of the postmaster command line in start_postmaster() so that our "-c max_slot_wal_keep_size" will override anything the user supplies. There's a bigger picture here, though. The fundamental thing that I find wrong with the current code is that knowledge of and responsibility for this max_slot_wal_keep_size hack is spread across both pg_upgrade and the server. It would be better if it were on just one side. Now, unless we want to change that Assert that 8bfb231b4 put into InvalidatePossiblyObsoleteSlot(), the server side is going to be aware of this decision. So I'm inclined to think that we should silently enforce max_slot_wal_keep_size = -1 in binary-upgrade mode in the server's GUC check hook, and then remove knowledge of it from pg_upgrade altogether. Maybe the same for idle_replication_slot_timeout, which really has got the same issue that we don't want users overriding that choice. regards, tom lane
Commits
-
Fix the handling of two GUCs during upgrade.
- 72e6c08fea7c 19 (unreleased) landed
- f36e5774510d 18.0 landed
- 24f6c1bd41d0 17.6 landed
-
Rework how logirep launchers are stopped during pg_upgrade
- 08c3ad27eb53 17.0 landed
-
Prohibit max_slot_wal_keep_size to value other than -1 during upgrade.
- 8bfb231b43d7 17.0 landed
-
Prevent startup of logical replication launcher during pg_upgrade
- 7021d3b17664 17.0 cited
-
Migrate logical slots to the new node during an upgrade.
- 29d0a77fa660 17.0 cited