From fa95bc5f6ded9e155ce00d8e7630c58d7d4fbde9 Mon Sep 17 00:00:00 2001 From: shipixian Date: Mon, 19 Aug 2024 12:08:08 +0800 Subject: [PATCH v2] Fix walreceiver set incorrect flushedUpto when switching primary Signed-off-by: shipixian --- src/backend/replication/walreceiverfuncs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend/replication/walreceiverfuncs.c b/src/backend/replication/walreceiverfuncs.c index 90798b9d53..a8d3e14f55 100644 --- a/src/backend/replication/walreceiverfuncs.c +++ b/src/backend/replication/walreceiverfuncs.c @@ -298,10 +298,10 @@ RequestXLogStreaming(TimeLineID tli, XLogRecPtr recptr, const char *conninfo, walrcv->startTime = now; /* - * If this is the first startup of walreceiver (on this timeline), + * If this is the first startup of walreceiver (on this timeline) or recptr lt last flushedLsn, * initialize flushedUpto and latestChunkStart to the starting point. */ - if (walrcv->receiveStart == 0 || walrcv->receivedTLI != tli) + if (walrcv->receiveStart == 0 || walrcv->receivedTLI != tli || recptr < walrcv->receiveStart) { walrcv->flushedUpto = recptr; walrcv->receivedTLI = tli; -- 2.39.3 (Apple Git-145)