On 2023-Oct-27, Kyotaro Horiguchi wrote: > @@ -1433,8 +1433,8 @@ > InvalidatePossiblyObsoleteSlot(ReplicationSlotInvalidationCause cause, > { > ereport(ERROR, > > errcode(ERRCODE_INVALID_PARAMETER_VALUE), > - errmsg("replication slots must not be > invalidated during the upgrade"), > - errhint("\"max_slot_wal_keep_size\" > must be set to -1 during the upgrade"));
Hmm, if I read this code right, this error is going to be thrown by the checkpointer while finishing a checkpoint. Fortunately, the checkpoint record has already been written, but I don't know what would happen if this is thrown while trying to write the shutdown checkpoint. Probably nothing terribly good. I don't think this is useful. If the setting is invalid during binary upgrade, let's prevent it from being set at all right from the start of the upgrade process. In InvalidatePossiblyObsoleteSlot() we could have just an Assert() or elog(PANIC). -- Álvaro Herrera Breisgau, Deutschland — https://www.EnterpriseDB.com/