From 000bb21e54085abcf9df8cc75e4a86c21e24700e Mon Sep 17 00:00:00 2001 From: Bertrand Drouvot Date: Mon, 11 Dec 2023 20:05:25 +0000 Subject: [PATCH v1] 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 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 100.0% src/backend/replication/ diff --git a/src/backend/replication/walreceiver.c b/src/backend/replication/walreceiver.c index 26ded928a7..47f1d50144 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; @@ -413,9 +412,14 @@ WalReceiverMain(void) if (walrcv_startstreaming(wrconn, &options)) { if (first_stream) + { + SpinLockAcquire(&walrcv->mutex); + walrcv->walRcvState = WALRCV_STREAMING; + SpinLockRelease(&walrcv->mutex); ereport(LOG, (errmsg("started streaming WAL from primary at %X/%X on timeline %u", LSN_FORMAT_ARGS(startpoint), startpointTLI))); + } else ereport(LOG, (errmsg("restarted WAL streaming at %X/%X on timeline %u", -- 2.34.1