Re: [BUGS] Crash report for some ICU-52 (debian8) COLLATE andwork_mem values

Поиск
Список
Период
Сортировка
От Peter Geoghegan
Тема Re: [BUGS] Crash report for some ICU-52 (debian8) COLLATE andwork_mem values
Дата
Msg-id CAH2-Wzn1OCy9Wu594A2hrJvCOtGsp-xS6e0hiVsNNYBntWr=rQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: [BUGS] Crash report for some ICU-52 (debian8) COLLATE and work_mem values  ("Daniel Verite" <daniel@manitou-mail.org>)
Ответы [BUGS] Re: Crash report for some ICU-52 (debian8) COLLATE and work_memvalues  (Noah Misch <noah@leadboat.com>)
Re: [BUGS] Crash report for some ICU-52 (debian8) COLLATE andwork_mem values  (Andres Freund <andres@anarazel.de>)
Список pgsql-bugs
On Thu, Aug 3, 2017 at 8:49 AM, Daniel Verite <daniel@manitou-mail.org> wrote:
> With query #2 it ends up crashing after ~5hours  and produces
> the log in log-valgrind-2.txt.gz with some other entries than
> case #1, but AFAICS still all about reading  uninitialised values
> in space allocated by datumCopy().

Right. This part is really interesting to me:

==48827==  Uninitialised value was created by a heap allocation
==48827==    at 0x4C28C20: malloc (vg_replace_malloc.c:296)
==48827==    by 0x80B597: AllocSetAlloc (aset.c:771)
==48827==    by 0x810ADC: palloc (mcxt.c:862)
==48827==    by 0x72BFEF: datumCopy (datum.c:171)
==48827==    by 0x81A74C: tuplesort_putdatum (tuplesort.c:1515)
==48827==    by 0x5E91EB: advance_aggregates (nodeAgg.c:1023)

If you actually go to datum.c:171, you see that that's a codepath for
pass-by-reference datatypes that lack a varlena header. Text is a
datatype that has a varlena header, though, so that's clearly wrong. I
don't know how this actually happened, but working back through the
relevant tuplesort_begin_datum() caller, initialize_aggregate(), does
suggest some things. (tuplesort_begin_datum() is where datumTypeLen is
determined for the entire datum tuplesort.)

I am once again only guessing, but I have to wonder if this is a
problem in commit b8d7f053. It seems likely that the problem begins
before tuplesort_begin_datum() is even called, which is the basis of
this suspicion. If the problem is within tuplesort, then that could
only be because get_typlenbyval() gives wrong answers, which seems
very unlikely.

-- 
Peter Geoghegan


-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

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

Предыдущее
От: Ross Biro
Дата:
Сообщение: Re: [BUGS] BUG #14770: postgres_fdw assumes foreign table is in postgres
Следующее
От: Peter Geoghegan
Дата:
Сообщение: Re: [BUGS] Crash report for some ICU-52 (debian8) COLLATE andwork_mem values