Jan Wieck 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

Search Discussions

Discussion Posts


Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 6 of 15 | next ›
Discussion Overview
grouppgsql-hackers @
postedDec 23, '03 at 6:12p
activeJan 7, '04 at 7:36p



site design / logo © 2021 Grokbase