From db0144bf39a7327d21b5a8d9a3684b92c14ba592 Mon Sep 17 00:00:00 2001 From: "Andrey V. Lepikhov" Date: Wed, 6 Nov 2019 07:11:31 +0500 Subject: [PATCH] Correct the algorithm of definition of WAL-record start point after end of the previous continuation record in the XLogFindNextRecord () routine. Sometimes, the remainder of a continuation record can exactly match the block size and we need to switch targetPagePtr for the next WAL-record to the next block. --- src/backend/access/transam/xlogreader.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/access/transam/xlogreader.c b/src/backend/access/transam/xlogreader.c index c8b0d2303d..6d8581919c 100644 --- a/src/backend/access/transam/xlogreader.c +++ b/src/backend/access/transam/xlogreader.c @@ -966,7 +966,7 @@ XLogFindNextRecord(XLogReaderState *state, XLogRecPtr RecPtr) * * Note that record headers are MAXALIGN'ed */ - if (MAXALIGN(header->xlp_rem_len) > (XLOG_BLCKSZ - pageHeaderSize)) + if (MAXALIGN(header->xlp_rem_len) >= (XLOG_BLCKSZ - pageHeaderSize)) tmpRecPtr = targetPagePtr + XLOG_BLCKSZ; else { -- 2.17.1