RE: promotion related handling in pg_sync_replication_slots() - Mailing list pgsql-hackers

From Zhijie Hou (Fujitsu)
Subject RE: promotion related handling in pg_sync_replication_slots()
Date
Msg-id OS0PR01MB5716BD38012C29E9D9EC2E0F94082@OS0PR01MB5716.jpnprd01.prod.outlook.com
Whole thread Raw
In response to Re: promotion related handling in pg_sync_replication_slots()  (shveta malik <shveta.malik@gmail.com>)
Responses Re: promotion related handling in pg_sync_replication_slots()  (shveta malik <shveta.malik@gmail.com>)
List pgsql-hackers
On Monday, April 15, 2024 6:09 PM shveta malik <shveta.malik@gmail.com> wrote:
> 
> Please find v4 addressing the above comments.

Thanks for the patch.

Here are few comments:

1.

+            ereport(ERROR,
+                    errmsg("promotion in progress, can not synchronize replication slots"));
+        }

I think an errcode is needed.

The style of the error message seems a bit unnatural to me. I suggest:
"cannot synchronize replication slots when standby promotion is ongoing"


2.

+    if (worker_pid != InvalidPid)
+        Assert(SlotSyncCtx->pid == InvalidPid);

We could merge the checks into one Assert().
Assert(SlotSyncCtx->pid == InvalidPid || worker_pid == InvalidPid);


3.

-    pqsignal(SIGINT, SignalHandlerForShutdownRequest);

I realized that we should register this before setting SlotSyncCtx->pid,
otherwise if the standby is promoted after setting pid and before registering
signal handle function, the slotsync worker could miss to handle SIGINT sent by
startup process(ShutDownSlotSync). This is an existing issue for slotsync
worker, but maybe we could fix it together with the patch.

Best Regards,
Hou zj

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Time to back-patch libxml deprecation fixes?
Next
From: Masahiko Sawada
Date:
Subject: Re: POC PATCH: copy from ... exceptions to: (was Re: VLDB Features)