Jan Wieck <[EMAIL PROTECTED]> writes:
>> Let me know if there's any test I could run to confirm your theory,
>> assuming I can make it happen again after I finish rebuilding.

> You could add another assertion that checks that the CDB found is 
> actually pointing to the buffer that is being invalidated.

Good thought.  What would that look like exactly?

> Looking at the bufmgr.c code for FlushRelationBuffers() ... it does 
> exactly what I described ... leaving the relnode and buffernum for an 
> invalidated buffer just where they are.

Yeah.  I don't think FlushRelationBuffers() is the place to fix it
though; if you try to fix it at that level there will be several places
to do it (DropBuffers etc).  It's unclear to me what the division of
labor is now between BufTableDelete and freelist.c, so I'm not sure
where you *should* fix it ... but it should be as close as possible to
where the buffer is removed from the hashtable, IMHO.

                        regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings

Reply via email to