Re: Potential G2-item cycles under serializable isolation - Mailing list pgsql-bugs

From Thomas Munro
Subject Re: Potential G2-item cycles under serializable isolation
Date
Msg-id CA+hUKGJNbDc6haq1VZbNsLWXJbcxWVcZyEiVOWzupmJiKC-PeA@mail.gmail.com
Whole thread Raw
In response to Re: Potential G2-item cycles under serializable isolation  (Kyle Kingsbury <aphyr@jepsen.io>)
Responses Re: Potential G2-item cycles under serializable isolation
List pgsql-bugs
On Wed, Jun 3, 2020 at 4:19 AM Kyle Kingsbury <aphyr@jepsen.io> wrote:
>
https://github.com/jepsen-io/jepsen/blob/f47eb25ab32529a7b66f1dfdd3b5ef2fc84ed778/stolon/src/jepsen/stolon/append.clj#L31-L108

I'm looking into this, but just by the way, you said:

; OK, so first worrying thing: why can this throw duplicate key errors if
; it's executed with "if not exists"?
(try
  (j/execute! conn
    [(str "create table if not exists " (table-name i)
    ....

That's (unfortunately) a known problem under concurrency.  It'd be
very nice to fix that, but it's an independent problem relating to DDL
(not just tables, and not just IF EXISTS DDL, but anything modifying
catalogues can race in this way and miss out on "nice" error messages
or the IF EXISTS no-op).  Here's a good short summary:

https://www.postgresql.org/message-id/CA%2BTgmoZAdYVtwBfp1FL2sMZbiHCWT4UPrzRLNnX1Nb30Ku3-gg%40mail.gmail.com



pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: Explicit deterministic COLLATE fails with pattern matching operations on column with non-deterministic collation
Next
From: Peter Geoghegan
Date:
Subject: Re: Potential G2-item cycles under serializable isolation