diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c index 595dead3c54a578db31129c7b082df79a46472f2..860fd2039b12c48f695d6d1f9cc9586d80f53ceb 100644 --- a/src/backend/access/heap/heapam.c +++ b/src/backend/access/heap/heapam.c @@ -5367,7 +5367,11 @@ newt:; ItemPointerGetBlockNumber(&(xlrec->newtid)), false); if (!BufferIsValid(nbuffer)) + { + if (BufferIsValid(obuffer)) + UnlockReleaseBuffer(obuffer); return; + } page = (Page) BufferGetPage(nbuffer); if (XLByteLE(lsn, PageGetLSN(page))) /* changes are applied */