Re: Potential G2-item cycles under serializable isolation

Kyle Kingsbury <aphyr@jepsen.io>

From: Kyle Kingsbury <aphyr@jepsen.io>
To: Peter Geoghegan <pg@bowt.ie>, Andres Freund <andres@anarazel.de>
Cc: Kevin Grittner <kgrittn@gmail.com>, Jeff Davis <pgsql@j-davis.com>, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2020-06-11T03:14:42Z
Lists: pgsql-bugs
On 6/10/20 9:10 PM, Peter Geoghegan wrote:
> On Mon, Jun 8, 2020 at 7:30 PM Peter Geoghegan <pg@bowt.ie> wrote:
>> I'll try to write an isolationtester test tomorrow.
> Attached is v3, which has an isolationtester test.
>
> It also fixes an assertion failure that could happen in rare cases,
> which was reported to me privately by Thomas. We now explicitly don't
> go ahead with an XID when it precedes TransactionXmin.

Thanks so much for investigating this, Peter. And thanks to everyone else here 
who helped get this sorted out--y'all have done great work. :)

I wanted to let you know that I've put together a draft of a report on these 
findings, and if you've got any comments you'd like to offer, I'd be happy to 
hear them, either on-list or privately. 
http://jepsen.io/analyses/postgresql-12.3?draft-token=Kets1Quayfs

People reading this list: hi please don't leak this to twitter/HN/etc just yet, 
I'd like to give it a few days to settle before release. :)

--Kyle




Commits

  1. Doc: Add references for SI and SSI.

  2. Improve comments for [Heap]CheckForSerializableConflictOut().

  3. Avoid update conflict out serialization anomalies.

  4. Implement genuine serializable isolation level.