Re: recovering from "found xmin ... from before relfrozenxid ..." - Mailing list pgsql-hackers

From Andres Freund
Subject Re: recovering from "found xmin ... from before relfrozenxid ..."
Date
Msg-id 20201029045722.6cj6pur377rngvn2@alap3.anarazel.de
Whole thread Raw
In response to Re: recovering from "found xmin ... from before relfrozenxid ..."  (Andres Freund <andres@anarazel.de>)
Responses Re: recovering from "found xmin ... from before relfrozenxid ..."  (Andrey Borodin <x4mmm@yandex-team.ru>)
List pgsql-hackers
Hi,

On 2020-10-28 21:00:30 -0700, Andres Freund wrote:
> On 2020-10-28 19:09:14 -0700, Andres Freund wrote:
> > On 2020-10-28 18:13:44 -0700, Andres Freund wrote:
> > > Just pushed this. Let's see what the BF says...
> > 
> > It says that apparently something is unstable about my new test. It
> > first passed on a few animals, but then failed a lot in a row. Looking.
> 
> The differentiating factor is force_parallel_mode=regress.
> 
> Ugh, this is nasty: The problem is that we can end up computing the
> horizons the first time before MyDatabaseId is even set. Which leads us
> to compute a too aggressive horizon for plain tables, because we skip
> over them, as MyDatabaseId still is InvalidOid:
> 
>         /*
>          * Normally queries in other databases are ignored for anything but
>          * the shared horizon. But in recovery we cannot compute an accurate
>          * per-database horizon as all xids are managed via the
>          * KnownAssignedXids machinery.
>          */
>         if (in_recovery ||
>             proc->databaseId == MyDatabaseId ||
>             proc->databaseId == 0)    /* always include WalSender */
>             h->data_oldest_nonremovable =
>                 TransactionIdOlder(h->data_oldest_nonremovable, xmin);
> 
> That then subsequently leads us consider a row fully dead in
> heap_hot_search_buffers(). Triggering the killtuples logic. Causing the
> test to fail.
> 
> With force_parallel_mode=regress we constantly start parallel workers,
> which makes it much more likely that this case is hit.
> 
> It's trivial to fix luckily...

Pushed that fix, hopefully that calms the BF.

Greetings,

Andres Freund



pgsql-hackers by date:

Previous
From: vignesh C
Date:
Subject: Re: Log message for GSS connection is missing once connection authorization is successful.
Next
From: Bharath Rupireddy
Date:
Subject: Re: A new function to wait for the backend exit after termination