Re: BUG #18979: pg_upgrade to PG17 fails if max_slot_wal_keep_size is not set to -1

David G. Johnston <david.g.johnston@gmail.com>

From: "David G. Johnston" <david.g.johnston@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: jorsol@gmail.com, pgsql-bugs@lists.postgresql.org
Date: 2025-07-06T16:47:04Z
Lists: pgsql-bugs
On Sun, Jul 6, 2025 at 9:41 AM David G. Johnston <david.g.johnston@gmail.com>
wrote:

> 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)
>
>
I suppose the answer is because sighup settings seemingly do not belong
here...

./psql postgres
psql (18beta1)
Type "help" for help.

postgres=# show summarize_wal;
 summarize_wal
---------------
 on
(1 row)

postgres=# show wal_level;
 wal_level
-----------
 minimal
(1 row)

Which is an impossible combination to begin in but is allowed if you change
only sumamrize_wal to on and perform a reload.

David J.

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Fix the handling of two GUCs during upgrade.

  2. Prohibit max_slot_wal_keep_size to value other than -1 during upgrade.