Re: BUG #15121: Multiple UBSAN errors
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Tomas Vondra <tomas.vondra@2ndquadrant.com>
Cc: Martin Liška <marxin.liska@gmail.com>, pgsql-bugs@lists.postgresql.org
Date: 2018-03-19T18:20:33Z
Lists: pgsql-bugs
Tomas Vondra <tomas.vondra@2ndquadrant.com> writes:
> On 03/19/2018 03:28 PM, Martin Liška wrote:
>>>> Note that building postgresql with -03, I see some array tests failing.
> 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 tried -O3 with gcc 7.3.1 (Fedora 26), and that passes check-world
just fine. Then I tried -O3 with gcc 8.0.1 (prerelease Fedora 28),
and indeed that's got some problems. It looks like array_out fails
for multidimensional arrays, because all the diffs look about
like this one:
*** 106,116 ****
SET c[2:2] = '{"new_word"}'
WHERE array_dims(c) is not null;
SELECT a,b,c FROM arrtest;
! a | b | c
! ---------------+-----------------------+-------------------
! {16,25,3,4,5} | {{{113,142},{1,147}}} | {}
! {} | {3,4} | {foo,new_word}
! {16,25,23} | {{3,4},{4,5}} | {foobar,new_word}
(3 rows)
SELECT a[1:3],
--- 106,116 ----
SET c[2:2] = '{"new_word"}'
WHERE array_dims(c) is not null;
SELECT a,b,c FROM arrtest;
! a | b | c
! ---------------+---------------+-------------------
! {16,25,3,4,5} | {{ | {}
! {} | {3,4} | {foo,new_word}
! {16,25,23} | {{3,4},{4,5}} | {foobar,new_word}
(3 rows)
SELECT a[1:3],
Note that 1-D and 2-D arrays print fine, it's only 3-D or deeper
that print wrong. Very odd. Maybe it's bad code on our part,
but I think the odds are at least as good that it's a new gcc bug.
regards, tom lane
Commits
-
Don't read fields of a misaligned ExpandedObjectHeader or AnyArrayType.
- b664b187d7ea 9.5.19 landed
- cd9d48969d94 10.10 landed
- 4b85f20f948d 11.5 landed
- 2938aa2a5b1c 9.6.15 landed
- 459c3cdb4ad8 12.0 landed
-
Doc: note that statement-level view triggers require an INSTEAD OF trigger.
- a46783204713 11.0 cited