Andres Freund <andres@anarazel.de> writes:
> On 2019-05-01 14:44:12 -0400, Tom Lane wrote:
>> This seems quite wrong, because it prevents us from rebuilding the
>> entry with corrected values. In particular notice that the change
>> causes us to skip the RelationInitPhysicalAddr call that would
>> normally be applied to a nailed mapped index in that loop. That's
>> completely fatal in this case --- it keeps us from restoring the
>> correct relfilenode that the mapper would now tell us, if we only
>> bothered to ask.
> Indeed. I'm a bit surprised that doesn't lead to more problems.
> Not sure I understand where the RelationCacheInvalidate() call is coming
> from in this case though. Shouldn't the entry have been invalidated
> individually through ATEOXact_Inval(false)?
In CLOBBER_CACHE_ALWAYS mode it's likely that we get a
RelationCacheInvalidate call first.
Note that the change I'm talking about here is not sufficient to fix
the failure; there are more problems behind it. I just wanted to know
if there was something I was missing about that old patch.
regards, tom lane