Re: Potential G2-item cycles under serializable isolation

Peter Geoghegan <pg@bowt.ie>

From: Peter Geoghegan <pg@bowt.ie>
To: Kyle Kingsbury <aphyr@jepsen.io>
Cc: PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2020-06-04T23:14:20Z
Lists: pgsql-bugs
On Thu, Jun 4, 2020 at 3:52 PM Kyle Kingsbury <aphyr@jepsen.io> wrote:
> Naw, that's ok. :homebrew-upsert-failed is just letting you know that we couldn't do the update-insert-update dance. Shouldn't be any safety impact. :-)

I also notice some deadlocks when inserting -- not duplicate violations:

1591311225.473 170332 1197463 INSERT waiting 5ed97b3c.2995c jepsen
process 25 LOG:  process 170332 still waiting for ShareLock on
transaction 1197460 after 1000.091 ms
1591311225.473 170332 1197463 INSERT waiting 5ed97b3c.2995c jepsen
process 25 DETAIL:  Process holding the lock: 170418. Wait queue:
170332, 170450, 170478.
1591311225.473 170332 1197463 INSERT waiting 5ed97b3c.2995c jepsen
process 25 CONTEXT:  while inserting index tuple (3,176) in relation
"txn0_pkey"
1591311225.474 170450 1197458 INSERT waiting 5ed97b5b.299d2 jepsen
process 55 LOG:  process 170450 detected deadlock while waiting for
ShareLock on transaction 1197460 after 1000.086 ms
1591311225.474 170450 1197458 INSERT waiting 5ed97b5b.299d2 jepsen
process 55 DETAIL:  Process holding the lock: 170418. Wait queue:
170332, 170478.
1591311225.474 170450 1197458 INSERT waiting 5ed97b5b.299d2 jepsen
process 55 CONTEXT:  while inserting index tuple (5,279) in relation
"txn0_pkey"

Are they expected?

-- 
Peter Geoghegan



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.