Re: HOT chain validation in verify_heapam() - Mailing list pgsql-hackers

From Peter Geoghegan
Subject Re: HOT chain validation in verify_heapam()
Date
Msg-id CAH2-WzkwqKVZcGRCsBgZXBF307b+DYb6h9uCxgBO-EMx=dcPvA@mail.gmail.com
Whole thread Raw
In response to Re: HOT chain validation in verify_heapam()  (Andres Freund <andres@anarazel.de>)
Responses Re: HOT chain validation in verify_heapam()
List pgsql-hackers
On Mon, Nov 14, 2022 at 2:58 PM Andres Freund <andres@anarazel.de> wrote:
> On 2022-11-14 14:42:16 -0800, Peter Geoghegan wrote:
> > What does this have to tell us, if anything, about the implications
> > for code on HEAD?
>
> Nothing really test I sent (*) - I wanted to advance the discussion about the
> patch being wrong as-is in a concrete way.

Got it.

> This logic was one of my main complaints in
> https://postgr.es/m/20221109220803.t25sosmfvkeglhy4%40awork3.anarazel.de
> and you went in a very different direction in your reply. Hence a test
> showcasing the issue.

I guess I was also confused by the fact that you called it
"skewer.diff", which is a terminology I invented to describe the scary
HOT chain freezing bug. You probably started out writing an isolation
test to do something like that, but then repurposed it to show a bug
in the patch. Anyway, never mind, I understand you now.

> Note that neither of my complaints around FrozenTransactionId in that email
> actually require that HOT is involved. The code in the patch doesn't
> differentiate between hot and not-hot until later.

I understand. I mentioned HOT only because it's more obviously not
okay with HOT -- you can point to the precise code that is broken
quite easily (index scans break with HOT chain traversals give wrong
answers in the problem scenario with freezing HOT chains in the wrong
place).

I'd really like to know if the scary HOT chain freezing scenario is
possible, for the very obvious reason. Have you tried to write a test
case for that?

-- 
Peter Geoghegan



pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: HOT chain validation in verify_heapam()
Next
From: Nathan Bossart
Date:
Subject: Re: Suppressing useless wakeups in walreceiver