Thread: Parallel CREATE INDEX vs DSM starvation

Parallel CREATE INDEX vs DSM starvation

From
Thomas Munro
Date:
Hello,

CreateParallelContext() can return a context with seg == NULL.  That
causes CREATE INDEX to segfault.  Instead, it should fall back to
non-parallel build.  See attached.

This probably explains a segfault reported over on pgsql-general[1].

[1] https://www.postgresql.org/message-id/CA%2BhUKG%2BcfjHy63hXEOc-CRZEPcUhu9%3DP3gKk_W9OiXzj-dfV_g%40mail.gmail.com

Attachment

Re: Parallel CREATE INDEX vs DSM starvation

From
Peter Geoghegan
Date:
On Wed, Jan 29, 2020 at 11:38 PM Thomas Munro <thomas.munro@gmail.com> wrote:
> CreateParallelContext() can return a context with seg == NULL.  That
> causes CREATE INDEX to segfault.  Instead, it should fall back to
> non-parallel build.  See attached.

I guess we can't call _bt_end_parallel() here. So your patch LGTM.

Thanks
-- 
Peter Geoghegan



Re: Parallel CREATE INDEX vs DSM starvation

From
Thomas Munro
Date:
On Thu, Jan 30, 2020 at 8:47 PM Peter Geoghegan <pg@bowt.ie> wrote:
> On Wed, Jan 29, 2020 at 11:38 PM Thomas Munro <thomas.munro@gmail.com> wrote:
> > CreateParallelContext() can return a context with seg == NULL.  That
> > causes CREATE INDEX to segfault.  Instead, it should fall back to
> > non-parallel build.  See attached.
>
> I guess we can't call _bt_end_parallel() here. So your patch LGTM.

Thanks.  Pushed.