Skip to content
Snippets Groups Projects
Commit a29f6c09 authored by Tom Lane's avatar Tom Lane
Browse files

Make the found-a-buffer-when-we-were-expecting-to-extend-the-rel path

actually work.  It had been throwing an Assert as of my recent changes
to bufmgr.c, but was not really right even before that AFAICT.
parent 109d50dd
No related branches found
No related tags found
No related merge requests found
......@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/storage/buffer/bufmgr.c,v 1.114 2001/06/29 21:08:24 tgl Exp $
* $Header: /cvsroot/pgsql/src/backend/storage/buffer/bufmgr.c,v 1.115 2001/07/02 18:47:18 tgl Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -198,13 +198,22 @@ ReadBufferInternal(Relation reln, BlockNumber blockNum,
/* if it's already in the buffer pool, we're done */
if (found)
{
/*
* Could have found && isExtend if a buffer was already created for
* the next page position, but then smgrextend failed to write
* the page. Must fall through and try to extend file again.
*/
/* That is, we're done if we expected to be able to find it ... */
if (!isExtend)
return BufferDescriptorGetBuffer(bufHdr);
/*
* If we found a buffer when we were expecting to extend the relation,
* the implication is that a buffer was already created for the next
* page position, but then smgrextend failed to write the page.
* We'd better try the smgrextend again. But since BufferAlloc
* won't have done StartBufferIO, we must do that first.
*/
if (!isLocalBuf)
{
SpinAcquire(BufMgrLock);
StartBufferIO(bufHdr, false);
SpinRelease(BufMgrLock);
}
}
/*
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment