From 45821f4006a59fc9675e3737a816c6eab0d92243 Mon Sep 17 00:00:00 2001 From: shipixian Date: Mon, 19 Aug 2024 12:08:08 +0800 Subject: [PATCH] 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 8de2886ff0b5..36f41f685da8 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;