Re: Potential G2-item cycles under serializable isolation

From: Thomas Munro <thomas(dot)munro(at)gmail(dot)com>
To: Kyle Kingsbury <aphyr(at)jepsen(dot)io>
Cc: PostgreSQL mailing lists <pgsql-bugs(at)lists(dot)postgresql(dot)org>
Subject: Re: Potential G2-item cycles under serializable isolation
Date: 2020-06-02 23:13:02
Message-ID: CA+hUKGJNbDc6haq1VZbNsLWXJbcxWVcZyEiVOWzupmJiKC-PeA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Wed, Jun 3, 2020 at 4:19 AM Kyle Kingsbury <aphyr(at)jepsen(dot)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

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Peter Geoghegan 2020-06-02 23:17:42 Re: Potential G2-item cycles under serializable isolation
Previous Message Tom Lane 2020-06-02 22:53:48 Re: Explicit deterministic COLLATE fails with pattern matching operations on column with non-deterministic collation