public inbox for [email protected]  
help / color / mirror / Atom feed
From: 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 (9+ 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