Re: BUG #15121: Multiple UBSAN errors

Поиск
Список
Период
Сортировка
От Tomas Vondra
Тема Re: BUG #15121: Multiple UBSAN errors
Дата
Msg-id 7f798f51-05c4-304a-f852-9cea35f5f095@2ndquadrant.com
обсуждение исходный текст
Ответ на Re: BUG #15121: Multiple UBSAN errors  (Martin Liška <marxin.liska@gmail.com>)
Ответы Re: BUG #15121: Multiple UBSAN errors
Список pgsql-bugs

On 03/19/2018 03:28 PM, Martin Liška wrote:
> On 19 March 2018 at 15:26, Tomas Vondra <tomas.vondra@2ndquadrant.com> wrote:
>> On 03/19/2018 09:59 AM, Martin Liška wrote:
>>> On 19 March 2018 at 01:34, Tomas Vondra <tomas.vondra@2ndquadrant.com> wrote:
>>>
>>> ...
>>>>
>>>> Again, the line numbers don't really match the code I have, but I guess
>>>> it's the same issue as for pg_comp_crc32c_sse42. This is apparently
>>>> related to array serialization, and I guess we have a compact structure
>>>> (intentionally, to make it smaller), and we accept the unaligned access.
>>>
>>> Note that building postgresql with -03, I see some array tests failing.
>>>
>>
>> I'm unable to reproduce that. I do get a bunch of compile-time warnings
>> about possibly uninitialized variables (which seem bogus after a quick
>> inspection), but no failures.
> 
> Note that the errrors I reported come from running an instrumented postgres
> with "-fsanitize=undefined -g" option.
> 

I'm getting failures in errors, union and alter_table, but none of those
are related to arrays. So, which tests are failing for you and how do
the failures look like?

I've tried both gcc 7.3 and trunk, and all failures look like this:

-- this used to be a syntax error, but now we allow an empty target list
select;
+ print.c:916:4: runtime error: null pointer passed as argument 1, which
is declared to never be null
+ /usr/include/bits/string3.h:90:10: runtime error: null pointer passed
as argument 1, which is declared to never be null

Which seems to trigger the error on this line in print.c:

    memset(header_done, false, col_count * sizeof(bool));

likely because with empty select list col_count=0. So about the same
cause as for fwrite().


-- 
Tomas Vondra                  http://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


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

Предыдущее
От: Martin Liška
Дата:
Сообщение: Re: BUG #15121: Multiple UBSAN errors
Следующее
От: Tom Lane
Дата:
Сообщение: Re: BUG #15121: Multiple UBSAN errors