{
ginIncompleteSplit *split = (ginIncompleteSplit *) lfirst(l);
- if (RelFileNodeEquals(node, split->node) && leftBlkno == split->leftBlkno && updateBlkno == split->rightBlkno)
+ if (RelFileNodeEquals(node, split->node) &&
+ leftBlkno == split->leftBlkno &&
+ updateBlkno == split->rightBlkno)
{
incomplete_splits = list_delete_ptr(incomplete_splits, split);
+ pfree(split);
break;
}
}
metabuffer = XLogReadBuffer(data->node, GIN_METAPAGE_BLKNO, false);
if (!BufferIsValid(metabuffer))
- elog(PANIC, "GIN metapage disappeared");
+ return; /* assume index was deleted, nothing to do */
metapage = BufferGetPage(metabuffer);
if (!XLByteLE(lsn, PageGetLSN(metapage)))
metabuffer = XLogReadBuffer(data->node, GIN_METAPAGE_BLKNO, false);
if (!BufferIsValid(metabuffer))
- elog(PANIC, "GIN metapage disappeared");
+ return; /* assume index was deleted, nothing to do */
metapage = BufferGetPage(metabuffer);
if (!XLByteLE(lsn, PageGetLSN(metapage)))