Re: [sqlsmith] Parallel worker crash on seqscan

Поиск
Список
Период
Сортировка
От Robert Haas
Тема Re: [sqlsmith] Parallel worker crash on seqscan
Дата
Msg-id CA+TgmoZwEPy5xnCPnJiy0GHcDcK4c43itdLoGJ65nwLomDN9yQ@mail.gmail.com
обсуждение исходный текст
Ответ на [sqlsmith] Parallel worker crash on seqscan  (Andreas Seltenreich <seltenreich@gmx.de>)
Ответы Re: [sqlsmith] Parallel worker crash on seqscan
Список pgsql-hackers
On Sun, Nov 20, 2016 at 8:53 AM, Andreas Seltenreich <seltenreich@gmx.de> wrote:
> the following query appears to reliably crash parallel workers on master
> as of 0832f2d.
>
> --8<---------------cut here---------------start------------->8---
> set max_parallel_workers_per_gather to 2;
> set force_parallel_mode to 1;
>
> select subq.context from pg_settings,
>     lateral (select context from pg_opclass limit 1) as subq
> limit 1;
> --8<---------------cut here---------------end--------------->8---
>
> Backtrace of a worker below.

Based on the backtrace, I wonder if this might be a regression
introduced by Tom's recent commit
9a00f03e479c2d4911eed5b4bd1994315d409938, "Improve speed of aggregates
that use array_append as transition function.", which adds additional
cases where expanded datums can be used.  In theory, a value passed
from the leader to the workers ought to have gone through
datumSerialize() which contains code to flatten expanded
representations, but it's possible that code is broken, or maybe the
problematic code path is something else altogether.  I'm just
suspicious about the fact that the failure is in
MakeExpandedObjectReadOnlyInternal().

Then again, that might just be a coincidence. The other thing that's
weird here is that the Datum being passed is apparently a NULL
pointer, which neither MakeExpandedObjectReadOnly() nor
MakeExpandedObjectReadOnlyInternal() are prepared to deal with.  I
don't know whether it's wrong for a NULL pointer to occur here in the
first place or whether it's wrong for those functions not to be able
to deal with it if it does.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Better handling of UPDATE multiple-assignment row expressions
Следующее
От: Amit Kapila
Дата:
Сообщение: Re: [sqlsmith] Failed assertion in parallel worker in ExecInitSubPlan