Re: XID formatting and SLRU refactorings

From: Alexander Korotkov <aekorotkov(at)gmail(dot)com>
To: Thomas Munro <thomas(dot)munro(at)gmail(dot)com>
Cc: Aleksander Alekseev <aleksander(at)timescale(dot)com>, Postgres hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Pavel Borisov <pashkin(dot)elfe(at)gmail(dot)com>, Heikki Linnakangas <hlinnaka(at)iki(dot)fi>, Maxim Orlov <orlovmg(at)gmail(dot)com>, Japin Li <japinli(at)hotmail(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, Michael Paquier <michael(at)paquier(dot)xyz>, Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com>
Subject: Re: XID formatting and SLRU refactorings
Date: 2023-12-17 15:22:23
Message-ID: CAPpHfdv=VahovNqJHBqr0ejHvx=eDuGYySC48Wcvp+GDxYLCJg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sun, Dec 17, 2023 at 1:48 AM Thomas Munro <thomas(dot)munro(at)gmail(dot)com> wrote:
> https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=loach&dt=2023-12-16%2005%3A25%3A18
>
> TRAP: failed Assert("epoch > 0"), File: "twophase.c", Line: 969, PID: 71030
> 0xa8edcd <ExceptionalCondition+0x6d> at
> /usr/home/pgbf/buildroot/HEAD/pgsql.build/tmp_install/home/pgbf/buildroot/HEAD/inst/bin/postgres
> 0x613863 <ReadTwoPhaseFile+0x463> at
> /usr/home/pgbf/buildroot/HEAD/pgsql.build/tmp_install/home/pgbf/buildroot/HEAD/inst/bin/postgres
>
> That's the new assertion from 5a1dfde8:
>
> + * The wrap logic is safe here because the span of active xids cannot
> exceed one
> + * epoch at any given time.
> ...
> + if (unlikely(xid > nextXid))
> + {
> + /* Wraparound occured, must be from a prev epoch. */
> + Assert(epoch > 0);

Thank you for noticing this. I did some investigations.
AdjustToFullTransactionId() uses TransamVariables->nextXid to convert
TransactionId into FullTransactionId. However,
ProcArrayApplyRecoveryInfo() first checks two phase transactions then
updates TransamVariables->nextXid. Please, see the draft patch
fixing this. I'll do further check if it has some side-effects.

------
Regards,
Alexander Korotkov

Attachment Content-Type Size
fix_ProcArrayApplyRecoveryInfo_update_nextXid.patch application/octet-stream 2.2 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Alvaro Herrera 2023-12-17 16:27:47 Re: Report planning memory in EXPLAIN ANALYZE
Previous Message Sukhbir Singh 2023-12-17 15:09:10 How to get started with contribution