Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit eacff26

Browse files
committed
Fix erroneous replay of GIN_UPDATE_META_PAGE WAL records.
A simple thinko in ginRedoUpdateMetapage, namely failing to increment a loop counter, led to inserting records into the last pending-list page in the wrong order (the opposite of that intended). So far as I can tell, this would not upset the code that eventually flushes pending items into the main part of the GIN index. But it did break the code that searched the pending list for matches, resulting in transient failure to find matching entries during index lookups, as illustrated in bug #6307 from Maksym Boguk. Back-patch to 8.4 where the incorrect code was introduced.
1 parent d2192a1 commit eacff26

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

src/backend/access/gin/ginxlog.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -529,6 +529,8 @@ ginRedoUpdateMetapage(XLogRecPtr lsn, XLogRecord *record)
529529
elog(ERROR, "failed to add item to index page");
530530

531531
tuples = (IndexTuple) (((char *) tuples) + tupsize);
532+
533+
off++;
532534
}
533535

534536
/*

0 commit comments

Comments
 (0)