pg.ddx.io  pgsql-bugs@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Tomas Vondra <tomas.vondra@2ndquadrant.com>
Cc: Martin Liška <marxin.liska@gmail.com>
Cc: pgsql-bugs@lists.postgresql.org
Subject: Re: BUG #15121: Multiple UBSAN errors
Date: Mon, 19 Mar 2018 14:20:33 -0400
Message-ID: <10573.1521483633@sss.pgh.pa.us> (raw)
In-Reply-To: <7f798f51-05c4-304a-f852-9cea35f5f095@2ndquadrant.com>
References: <152140318583.11955.7731957058248462341@wrigleys.postgresql.org>
	<7df78014-c931-6c75-6f92-ec48f390b2b9@2ndquadrant.com>
	<CAObPJ3MAY9u1had3QSvYO0TG-iVECqDzF04PvMZSHrmxNknZ8Q@mail.gmail.com>
	<46a345c1-1f8d-fd0d-c334-d8ca577719a9@2ndquadrant.com>
	<CAObPJ3OLHU2DwZLfCXEzkcqU2v6Otk6b32xo-eb0+PtEb=+BpQ@mail.gmail.com>
	<7f798f51-05c4-304a-f852-9cea35f5f095@2ndquadrant.com>

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




view thread (20+ messages)  latest in thread

Message-ID: <10573.1521483633@sss.pgh.pa.us>
Permalink:  ../10573.1521483633@sss.pgh.pa.us/
Also on:    postgresql.org/message-id/10573.1521483633@sss.pgh.pa.us

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-bugs@postgresql.org
  Cc: tgl@sss.pgh.pa.us, tomas.vondra@2ndquadrant.com, marxin.liska@gmail.com, pgsql-bugs@lists.postgresql.org
  Subject: Re: BUG #15121: Multiple UBSAN errors
  In-Reply-To: <10573.1521483633@sss.pgh.pa.us>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox