From: | Jan Wieck <JanWieck(at)Yahoo(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-hackers(at)postgreSQL(dot)org |
Subject: | Re: Bug in new buffer freelist code |
Date: | 2003-12-24 01:02:43 |
Message-ID: | 3FE8E5B3.4050803@Yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Tom Lane wrote:
> Jan Wieck <JanWieck(at)Yahoo(dot)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 from it, but it ensures that
> * sequential searches through the buffer table won't think the buffer
> * is still valid for 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?
Yeah, looks like ... but I actually want to have a clean reproduction of
the error before I attempt to fix it. Will look at it deeper.
>
> BTW, it kinda looks like the BM_DELETED flag bit is useless now?
I think so, together with the BM_FREE which was redundant anyway.
Jan
--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#================================================== JanWieck(at)Yahoo(dot)com #
From | Date | Subject | |
---|---|---|---|
Next Message | Christopher Kings-Lynne | 2003-12-24 02:34:08 | Re: [GENERAL] Temporary tables and miscellaneous schemas |
Previous Message | Andrew Dunstan | 2003-12-23 23:39:54 | Re: PostgreSQL port to pure Java? |