Re: pgsql: Fix deadlock hazard in CREATE INDEX CONCURRENTLY

From: Andres Freund <andres(at)anarazel(dot)de>
To: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, Jeff Janes <jeff(dot)janes(at)gmail(dot)com>
Cc: pgsql-committers(at)postgresql(dot)org
Subject: Re: pgsql: Fix deadlock hazard in CREATE INDEX CONCURRENTLY
Date: 2018-01-03 03:44:45
Message-ID: 20180103034445.t3utrtrnrevfsghm@alap3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Hi,

On 2018-01-03 02:20:14 +0000, Alvaro Herrera wrote:
> Fix deadlock hazard in CREATE INDEX CONCURRENTLY
>
> Multiple sessions doing CREATE INDEX CONCURRENTLY simultaneously are
> supposed to be able to work in parallel, as evidenced by fixes in commit
> c3d09b3bd23f specifically to support this case. In reality, one of the
> sessions would be aborted by a misterious "deadlock detected" error.
>
> Jeff Janes diagnosed that this is because of leftover snapshots used for
> system catalog scans -- this was broken by 8aa3e47510b9 keeping track of
> (registering) the catalog snapshot. To fix the deadlocks, it's enough
> to de-register that snapshot prior to waiting.
>
> Backpatch to 9.4, which introduced MVCC catalog scans.
>
> Include an isolationtester spec that 8 out of 10 times reproduces the
> deadlock with the unpatched code for me (Álvaro).

The isolation test doesn't appear to be fully stable:

https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=baiji&dt=2018-01-03%2003%3A00%3A01

Greetings,

Andres Freund

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Bruce Momjian 2018-01-03 04:30:43 pgsql: Update copyright for 2018
Previous Message Andres Freund 2018-01-03 03:12:55 pgsql: Simplify representation of aggregate transition values a bit.