Re: condition variable cleanup and subtransactions

From: Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: Pg Hackers <pgsql-hackers(at)postgresql(dot)org>, pgsql-committers <pgsql-committers(at)postgresql(dot)org>, Robert Haas <robertmhaas(at)gmail(dot)com>
Subject: Re: condition variable cleanup and subtransactions
Date: 2017-12-21 11:46:09
Message-ID: CAEepm=14vAPMUEhm5drRU=v+7C89wS2c9dvFyNQoN-b5gGXObA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

On Fri, Dec 22, 2017 at 12:00 AM, Andres Freund <andres(at)anarazel(dot)de> wrote:
> Oh. This seems to be a condition variable bug independent of PHJ. The
> problem is that the DSM segment etc all get cleaned up in
> *subtransaction* abort.
>
> Afaict it's a bug that AbortTransaction() does
> ConditionVariableCancelSleep() but AbortSubTransaction() does not,
> despite the latter releasing dsm segments via
> ResourceOwnerRelease(RESOURCE_RELEASE_BEFORE_LOCKS).
>
> Adding that seems to fix the crash.
>
> This seems like something we need to backpatch.

Agreed. That affects any user of condition variables inside DSM
segments, including the released Parallel Index Scan and Parallel
Bitmap Heap Scan code.

--
Thomas Munro
http://www.enterprisedb.com

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Thomas Munro 2017-12-21 12:48:59 Re: pgsql: Add parallel-aware hash joins.
Previous Message Andres Freund 2017-12-21 11:00:48 condition variable cleanup and subtransactions

Browse pgsql-hackers by date

  From Date Subject
Next Message Amit Kapila 2017-12-21 11:46:11 Re: [HACKERS] parallel.c oblivion of worker-startup failures
Previous Message Craig Ringer 2017-12-21 11:42:09 Re: The pg_indent on on ftp is outdated