Re: BUG #15121: Multiple UBSAN errors - Mailing list pgsql-bugs
From | Tomas Vondra |
---|---|
Subject | Re: BUG #15121: Multiple UBSAN errors |
Date | |
Msg-id | 2e3ae9a4-d402-c553-b1d6-bc5dbe8734f8@2ndquadrant.com Whole thread Raw |
In response to | Re: BUG #15121: Multiple UBSAN errors (Tom Lane <tgl@sss.pgh.pa.us>) |
Responses |
Re: BUG #15121: Multiple UBSAN errors
|
List | pgsql-bugs |
On 03/19/2018 07:20 PM, Tom Lane wrote: > 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. > Interesting. If I run the tests with "-03" I get the same failures in arrays. If I run them with "-O3 -fsanitize=undefined" I don't get any failures in arrays, but I get failures in errors, union and alter_table. I wouldn't expect -fsanitize=undefined to affect the results like this, but if it really is a compiler bug then all bets are off. regards -- Tomas Vondra http://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
pgsql-bugs by date: