Re: Bug in new buffer freelist code - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Bug in new buffer freelist code
Date
Msg-id 28372.1072217014@sss.pgh.pa.us
Whole thread Raw
In response to Re: Bug in new buffer freelist code  (Jan Wieck <JanWieck@Yahoo.com>)
Responses Re: Bug in new buffer freelist code  (Jan Wieck <JanWieck@Yahoo.com>)
List pgsql-hackers
Jan Wieck <JanWieck@Yahoo.com> writes:
> It seems to me that buffers that are thrown away via 
> StrategyInvalidateBuffer() do not get their relnode and blocknum cleaned 
> out.

Mmmm.  They definitely should be; if you look at the prior version of
buf_table.c, BufTableDelete did this:
   /*    * Clear the buffer's tag.  This doesn't matter for the hash table,    * since the buffer is already removed
fromit, but it ensures that    * sequential searches through the buffer table won't think the buffer    * is still
validfor its old page.    */   buf->tag.rnode.relNode = InvalidOid;   buf->tag.rnode.tblNode = InvalidOid;
 

I see you removed that from the current version, but the equivalent
thing needs to be done someplace.  Is StrategyInvalidateBuffer the
right place?

BTW, it kinda looks like the BM_DELETED flag bit is useless now?
        regards, tom lane


pgsql-hackers by date:

Previous
From: Jean-Michel POURE
Date:
Subject: Re: PostgreSQL port to pure Java?
Next
From: Tom Lane
Date:
Subject: Re: Bug in new buffer freelist code