Re: BUG #17116: Assert failed in SerialSetActiveSerXmin() on commit of parallelized serializable transaction

Thomas Munro <thomas.munro@gmail.com>

From: Thomas Munro <thomas.munro@gmail.com>
To: Alexander Lakhin <exclusion@gmail.com>
Cc: PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>, heikki.linnakangas@iki.fi, Kevin Grittner <kgrittn@gmail.com>
Date: 2023-03-06T03:52:31Z
Lists: pgsql-bugs
On Sun, Mar 5, 2023 at 10:00 PM Alexander Lakhin <exclusion@gmail.com> wrote:
> I've caught one of asserts we discussed here again (in a different setup)
> and would like to continue working on the fixes.
> I've rechecked
> v4-0001-Fix-assert-failures-in-parallel-SERIALIZABLE-READ.patch
> — it's still in a good shape, needs only minor corrections for the
> master branch and can be applied as-is to REL_12_STABLE .. REL_15_STABLE.
> The modified test serializable-parallel-2 and new test
> serializable-parallel-3 still trigger asserts with unpatched predicate.c
> and make check-world passes with the complete patch applied.

Yeah, I see the same here.

> So if that patch requires attention of a seasoned reviewer, let's
> send it to the commitfest (I can register the patch if you don't mind)?
> Otherwise, maybe just commit it and move to other bugs...

Pushed.  Thanks!



Commits

  1. Fix race in SERIALIZABLE READ ONLY.

  2. Fix assert failures in parallel SERIALIZABLE READ ONLY.

  3. Fix SxactGlobalXmin tracking.

  4. There's a small window wherein a transaction is committed but not yet