Re: error: could not find pg_class tuple for index 2662 - Mailing list pgsql-hackers

From Robert Haas
Subject Re: error: could not find pg_class tuple for index 2662
Date
Msg-id CA+Tgmoa3n2Uc-mictfcm_1LzpJM1BhfnxBSrS+dyq2OPGJk=nw@mail.gmail.com
Whole thread Raw
In response to Re: error: could not find pg_class tuple for index 2662  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
On Tue, Aug 16, 2011 at 3:45 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> It would be nice to move the short-circuit test I recently inserted at
>> the top of SIGetDataEntries() somewhere higher up in the call stack,
>> but right now the layers of abstraction are so thick that it's not
>> exactly clear how to do that.
>
> Glad you didn't try, because it would be wrong.  The fact that there
> are no outstanding messages in sinvaladt.c doesn't prove there are none
> yet unprocessed inside ReceiveSharedInvalidMessages.

Oh.  Good point.

> Anyway, to get back to the original point: I'm getting less excited
> about redoing the CLOBBER_CACHE_ALWAYS code at a different level.
> The only thing that can really promise is that we find places outside
> the cache code that are mistakenly holding onto cache entry pointers.
> It can't do very much for the sort of problems I've been finding over
> the past week, first because you need some other process actively
> changing the underlying information (else the use of a stale cache entry
> isn't a problem), and second because when you're looking for bugs
> involving use of stale cache entries, over-enthusiastic flushing of the
> cache can actually mask the bugs.
>
> I'd still like to think of a better test methodology, but I don't think
> "force clobbers inside ReceiveSharedInvalidMessages" is it.

Makes sense.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


pgsql-hackers by date:

Previous
From: Jim Nasby
Date:
Subject: Re: synchronized snapshots
Next
From: Tom Lane
Date:
Subject: A note about hash-based catcache invalidations