From 12da1b3c6295e2369b3a65c8f4ee40882def310f Mon Sep 17 00:00:00 2001 From: Bertrand Drouvot Date: Mon, 11 Dec 2023 20:05:25 +0000 Subject: [PATCH v2] move walrcv->walRcvState assignment to WALRCV_STREAMING walrcv->walRcvState = WALRCV_STREAMING was set to early. Move the assignement to a more appropriate place. --- src/backend/replication/walreceiver.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 100.0% src/backend/replication/ diff --git a/src/backend/replication/walreceiver.c b/src/backend/replication/walreceiver.c index 26ded928a7..5f612d354e 100644 --- a/src/backend/replication/walreceiver.c +++ b/src/backend/replication/walreceiver.c @@ -242,7 +242,6 @@ WalReceiverMain(void) } /* Advertise our PID so that the startup process can kill us */ walrcv->pid = MyProcPid; - walrcv->walRcvState = WALRCV_STREAMING; /* Fetch information required to start streaming */ walrcv->ready_to_display = false; @@ -412,6 +411,9 @@ WalReceiverMain(void) options.proto.physical.startpointTLI = startpointTLI; if (walrcv_startstreaming(wrconn, &options)) { + SpinLockAcquire(&walrcv->mutex); + walrcv->walRcvState = WALRCV_STREAMING; + SpinLockRelease(&walrcv->mutex); if (first_stream) ereport(LOG, (errmsg("started streaming WAL from primary at %X/%X on timeline %u", -- 2.34.1