From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Robert Haas <robertmhaas(at)gmail(dot)com> |
Cc: | "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Something is rotten in the state of Denmark... |
Date: | 2015-04-02 19:59:53 |
Message-ID: | 21272.1428004793@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Robert Haas <robertmhaas(at)gmail(dot)com> writes:
> On Thu, Apr 2, 2015 at 2:55 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>> Actually, now that I think it through, the "could not open relation"
>> error is pretty odd in itself. If we are trying to open pg_am using
>> a stale catalog snapshot, it seems like we ought to reliably find its
>> old pg_class tuple (the one with the obsolete relfilenode), rather than
>> finding nothing. But the latter is the behavior I'm seeing.
> What's to stop the old tuple from being HOT-pruned?
Hm, that may be it. I went back to the previous test scenario, and now
I can *only* get the "cache lookup failed for access method" behavior,
instead of what I was getting before, so I'm getting a bit confused :-(.
However, it does seem clear that the mechanism is indeed that we're
relying on an obsolete copy of pg_am's pg_class tuple, hence scanning a
truncated relfilenode, and that the patch I proposed fixes it.
Perhaps the difference has to do with whether pg_am's pg_class tuple is
on a page that hasn't got enough room for a HOT update? But I definitely
tried it several times and consistently got the same failure before.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2015-04-02 20:02:24 | Re: Something is rotten in the state of Denmark... |
Previous Message | Robert Haas | 2015-04-02 19:21:55 | Re: Abbreviated keys for Numeric |