aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFujii Masao <fujii@postgresql.org>2019-11-07 16:31:36 +0900
committerFujii Masao <fujii@postgresql.org>2019-11-07 16:31:36 +0900
commita0c96856e8b38a102daac76e3d385d9f8876744e (patch)
tree48e8fe4c1b3a56b366dfb26bae8b9ed0ec42c68f
parent7815e7efdb4ce9575b5d8460beb0dd2569d7ca3a (diff)
downloadpostgresql-a0c96856e8b38a102daac76e3d385d9f8876744e.tar.gz
postgresql-a0c96856e8b38a102daac76e3d385d9f8876744e.zip
Fix assertion failure when running pgbench -s.
If there is the WAL page that the continuation WAL record just fits within (i.e., the continuation record ends just at the end of the page) and the LSN in such page is specified with -s option, previously pg_waldump caused an assertion failure. The cause of this assertion failure was that XLogFindNextRecord() that pg_waldump -s calls mistakenly handled such special WAL page. This commit changes XLogFindNextRecord() so that it can handle such WAL page correctly. Back-patch to all supported versions. Author: Andrey Lepikhov Reviewed-by: Fujii Masao, Michael Paquier Discussion: https://postgr.es/m/99303554-5dd5-06e6-f943-b3005ccd6edd@postgrespro.ru
-rw-r--r--src/backend/access/transam/xlogreader.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/backend/access/transam/xlogreader.c b/src/backend/access/transam/xlogreader.c
index c8b0d2303d3..6d8581919c9 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
{