public inbox for [email protected]
help / color / mirror / Atom feedFrom: Andrey Borodin <[email protected]>
To: Zsolt Parragi <[email protected]>
Cc: PostgreSQL mailing lists <[email protected]>
Subject: Re: Possible G2-item at SERIALIZABLE
Date: Tue, 2 Jun 2026 13:18:29 +0500
Message-ID: <[email protected]> (raw)
In-Reply-To: <CAN4CZFOKnrRdHfd_SKcaNT33iV-QvLYyvUnO5aM2nuUipnug6A@mail.gmail.com>
References: <[email protected]>
<[email protected]>
<CAN4CZFOKnrRdHfd_SKcaNT33iV-QvLYyvUnO5aM2nuUipnug6A@mail.gmail.com>
> On 2 Jun 2026, at 03:00, Zsolt Parragi <[email protected]> wrote:
>
> + /*
> + * Mark ourselves doomed before raising the error. Otherwise a
> + * subtransaction abort (ROLLBACK TO SAVEPOINT) could swallow this
> + * error and let the transaction commit anyway, defeating SSI.
> + */
> + MySerializableXact->flags |= SXACT_FLAG_DOOMED;
> LWLockRelease(SerializableXactHashLock);
> ereport(ERROR,
> (errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
>
> I wonder if it would make sense to introduce a
> "DoomMyselfAndRaiseSerializationFailure" helper for this, while fixing
> all occurrences we can find? That would make it more explicit, and
> also less repeated.
>
>> PFA attached isolation tester and hand-wavy fix. But I suspect there are more G-items
>> around.
>
> There are at least 2 more reproducible with the isolation tester in
> CheckForSerializableConflictOut ("conflict out to old pivot %u", and
> "conflict out to old committed transaction %u" directly below it).
> Probably "Canceled on conflict out to old pivot." also should have the
> same changes?
Thanks for looking into this!
I agree fix needs some refinement and can be improved.
However, let's settle on the bug first.
Do you think that recovering serialization error with ROLLBACK TO SAVEPOINT is a bug?
Honestly, I'm not entirely convinced myself. AFAIU SSI docs do not describe this case
clearly.
Best regards, Andrey Borodin.
view thread (10+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected], [email protected]
Subject: Re: Possible G2-item at SERIALIZABLE
In-Reply-To: <[email protected]>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox