Re: Odd 9.4, 9.3 buildfarm failure on s390x

From: Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com>
To: Andrew Dunstan <andrew(dot)dunstan(at)2ndquadrant(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Andres Freund <andres(at)anarazel(dot)de>, mark(at)2ndquadrant(dot)com, Andrew Gierth <andrew(at)tao11(dot)riddles(dot)org(dot)uk>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Odd 9.4, 9.3 buildfarm failure on s390x
Date: 2018-10-01 22:10:53
Message-ID: CAEepm=3cz=BfSZxoK5txmZCks9uH+aCR4TgHZeeKtMUK44127A@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Oct 2, 2018 at 10:55 AM Andrew Dunstan
<andrew(dot)dunstan(at)2ndquadrant(dot)com> wrote:
> On 10/01/2018 12:50 PM, Tom Lane wrote:
> > Andres Freund <andres(at)anarazel(dot)de> writes:
> >> On 2018-10-01 12:13:57 -0400, Tom Lane wrote:
> >>> Yeah. So our choices are
> >>>
> >>> (1) Retain the current restriction on what sort comparators can
> >>> produce. Find all the places where memcmp's result is returned
> >>> directly, and fix them. (I wonder if strcmp has same issue.)
> >>>
> >>> (2) Drop the restriction. This'd require at least changing the
> >>> DESC correction, and maybe other things. I'm not sure what the
> >>> odds would be of finding everyplace we need to check.
> >>>
> >>> Neither one is sounding very pleasant, or maintainable.
> >> (2) seems more maintainable to me (or perhaps less unmaintainable). It's
> >> infrastructure, rather than every datatype + support out there...
> > I guess we could set up some testing infrastructure: hack int4cmp
> > and/or a couple other popular comparators so that they *always*
> > return INT_MIN, 0, or INT_MAX, and then see what falls over.
> >
> > I'm fairly sure that btree, as well as the sort code proper,
> > has got an issue here.
> >
> >
>
>
> I agree option 2 seems less unmaintainable. (Nice use of litotes there?)

+1 for option 2. It seems to me that it should ideally be the job of
the code that is negating the value to deal with this edge case. I
see that the restriction is clearly documented at the top of
src/backend/access/nbtree/nbtcompare.c even though it directly returns
strncmp() results. This was quite a surprising thread.

--
Thomas Munro
http://www.enterprisedb.com

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Lou Picciano 2018-10-01 22:30:28 Re: SerializeParamList vs machines with strict alignment
Previous Message Alvaro Herrera 2018-10-01 22:06:32 Re: automatic restore point