Skip to content

Commit 4614d53

Browse files
committed
Avoid unexpected shutdown when sync_replication_slots is enabled.
Previously, enabling sync_replication_slots while wal_level was not set to logical could cause the server to shut down. This was because the postmaster performed a configuration check before launching the slot synchronization worker and raised an ERROR if the settings were incompatible. Since ERROR is treated as FATAL in the postmaster, this resulted in the entire server shutting down unexpectedly. This commit changes the postmaster to log that message with a LOG-level instead of raising an ERROR, allowing the server to continue running even with the misconfiguration. Back-patch to v17, where slot synchronization was introduced. Reported-by: Hugo DUBOIS <hdubois@scaleway.com> Author: Fujii Masao <masao.fujii@gmail.com> Reviewed-by: Hugo DUBOIS <hdubois@scaleway.com> Reviewed-by: Shveta Malik <shveta.malik@gmail.com> Discussion: https://postgr.es/m/CAH0PTU_pc3oHi__XESF9ZigCyzai1Mo3LsOdFyQA4aUDkm01RA@mail.gmail.com Backpatch-through: 17
1 parent 1266652 commit 4614d53

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/backend/replication/logical/slotsync.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1059,14 +1059,14 @@ ValidateSlotSyncParams(int elevel)
10591059
{
10601060
/*
10611061
* Logical slot sync/creation requires wal_level >= logical.
1062-
*
1063-
* Since altering the wal_level requires a server restart, so error out in
1064-
* this case regardless of elevel provided by caller.
10651062
*/
10661063
if (wal_level < WAL_LEVEL_LOGICAL)
1067-
ereport(ERROR,
1064+
{
1065+
ereport(elevel,
10681066
errcode(ERRCODE_INVALID_PARAMETER_VALUE),
10691067
errmsg("replication slot synchronization requires \"wal_level\" >= \"logical\""));
1068+
return false;
1069+
}
10701070

10711071
/*
10721072
* A physical replication slot(primary_slot_name) is required on the

0 commit comments

Comments
 (0)