From 93678f861014c37f36ae178cbc93c51d4387110f Mon Sep 17 00:00:00 2001 From: Peter Smith Date: Mon, 1 Jul 2024 09:23:31 +1000 Subject: [PATCH v2] Relocate the flushptr checking code --- src/backend/replication/walsender.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/backend/replication/walsender.c b/src/backend/replication/walsender.c index c623b07..12f302c 100644 --- a/src/backend/replication/walsender.c +++ b/src/backend/replication/walsender.c @@ -1064,6 +1064,10 @@ logical_read_xlog_page(XLogReaderState *state, XLogRecPtr targetPagePtr, int req */ flushptr = WalSndWaitForWal(targetPagePtr + reqLen); + /* Fail if not enough (implies we are going to shut down) */ + if (flushptr < targetPagePtr + reqLen) + return -1; + /* * Since logical decoding is also permitted on a standby server, we need * to check if the server is in recovery to decide how to get the current @@ -1083,10 +1087,6 @@ logical_read_xlog_page(XLogReaderState *state, XLogRecPtr targetPagePtr, int req sendTimeLineValidUpto = state->currTLIValidUntil; sendTimeLineNextTLI = state->nextTLI; - /* fail if not (implies we are going to shut down) */ - if (flushptr < targetPagePtr + reqLen) - return -1; - if (targetPagePtr + XLOG_BLCKSZ <= flushptr) count = XLOG_BLCKSZ; /* more than one block available */ else -- 1.8.3.1