Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit bafe3b0

Browse files
committed
Reuse all-zero pages in GIN.
In GIN, an all-zeros page would be leaked forever, and never reused. Just add them to the FSM in vacuum, and they will be reinitialized when grabbed from the FSM. On master and 9.5, attempting to access the page's opaque struct also caused an assertion failure, although that was otherwise harmless. Reported by Jeff Janes. Backpatch to all supported versions.
1 parent 863af3a commit bafe3b0

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/backend/access/gin/ginvacuum.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -756,7 +756,7 @@ ginvacuumcleanup(PG_FUNCTION_ARGS)
756756
LockBuffer(buffer, GIN_SHARE);
757757
page = (Page) BufferGetPage(buffer);
758758

759-
if (GinPageIsDeleted(page))
759+
if (PageIsNew(page) || GinPageIsDeleted(page))
760760
{
761761
Assert(blkno != GIN_ROOT_BLKNO);
762762
RecordFreeIndexPage(index, blkno);

0 commit comments

Comments
 (0)