Thread: Regression testing failure: float8...

Regression testing failure: float8...

From
Sean Chittenden
Date:
Howdy.  Just a quick FYI, but I was running some regression tests on
HEAD and noticed that float8 is failing on FreeBSD 5.  FreeBSD 4 seems
to be fine.  Any suggestions on what I can poke at or where I should
look regarding this?  -sc

*** ./expected/float8-small-is-zero.out    Tue Oct 22 13:01:15 2002
--- ./results/float8.out    Sun Feb 16 15:25:48 2003
***************
*** 274,280 ****
--- 274,282 ----
  INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e400');
  ERROR:  Input '-10e400' is out of range for float8
  INSERT INTO FLOAT8_TBL(f1) VALUES ('10e-400');
+ ERROR:  Input '10e-400' is out of range for float8
  INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e-400');
+ ERROR:  Input '-10e-400' is out of range for float8
  -- maintain external table consistency across platforms
  -- delete all values and reinsert well-behaved ones
  DELETE FROM FLOAT8_TBL;

======================================================================

--
Sean Chittenden

Re: Regression testing failure: float8...

From
Tom Lane
Date:
Sean Chittenden <sean@chittenden.org> writes:
> Howdy.  Just a quick FYI, but I was running some regression tests on
> HEAD and noticed that float8 is failing on FreeBSD 5.  FreeBSD 4 seems
> to be fine.  Any suggestions on what I can poke at or where I should
> look regarding this?  -sc

Looks like freebsd has decided to become mainstream on underflow
handling.  You need to figure out how we should adjust the resultmap
entry for freebsd to not select float8-small-is-zero.out on 5.
Possibly
    float8/i.86-.*-freebsd4=float8-small-is-zero
would do --- are there any pre-4.0 boxes still out there?

            regards, tom lane

Re: Regression testing failure: float8...

From
Sean Chittenden
Date:
> > Howdy.  Just a quick FYI, but I was running some regression tests on
> > HEAD and noticed that float8 is failing on FreeBSD 5.  FreeBSD 4 seems
> > to be fine.  Any suggestions on what I can poke at or where I should
> > look regarding this?  -sc
>
> Looks like freebsd has decided to become mainstream on underflow
> handling.  You need to figure out how we should adjust the resultmap
> entry for freebsd to not select float8-small-is-zero.out on 5.
> Possibly
>     float8/i.86-.*-freebsd4=float8-small-is-zero
> would do --- are there any pre-4.0 boxes still out there?

There are 2.2.8 boxen still out there, but, if they're running 7.4
PostgreSQL on a 2.2.8 machine, let me know and I'll send black
choppers and people in suites.

Actually, now that I think about it, since BSD hasn't changed it's
handling of FPU errors in over 12 months now (no longer sends SIGFPE
on FPU errors), and it used to pass less than a month ago, it looks
like this is a "perk" of a recent gcc upgrade to 3.2.2.  I'm going to
update my -CURRENT box just to be sure though and see if this wasn't
an anomaly.  -sc

--
Sean Chittenden

Re: Regression testing failure: float8...

From
Tom Lane
Date:
Sean Chittenden <sean@chittenden.org> writes:
> Actually, now that I think about it, since BSD hasn't changed it's
> handling of FPU errors in over 12 months now (no longer sends SIGFPE
> on FPU errors), and it used to pass less than a month ago, it looks
> like this is a "perk" of a recent gcc upgrade to 3.2.2.

I'd expect it to be a libc issue, not a compiler nor kernel thing.
What you've got is that strtod() is now returning ERANGE for an
underflowed input value, whereas before it did not.  It's hard to
believe that this would depend on which compiler you compiled Postgres
with.  (Maybe it could depend on which compiler you compiled libc
with, though?)

            regards, tom lane

Re: Regression testing failure: float8...

From
Sean Chittenden
Date:
> > Actually, now that I think about it, since BSD hasn't changed it's
> > handling of FPU errors in over 12 months now (no longer sends
> > SIGFPE on FPU errors), and it used to pass less than a month ago,
> > it looks like this is a "perk" of a recent gcc upgrade to 3.2.2.
>
> I'd expect it to be a libc issue, not a compiler nor kernel thing.
> What you've got is that strtod() is now returning ERANGE for an
> underflowed input value, whereas before it did not.  It's hard to
> believe that this would depend on which compiler you compiled
> Postgres with.  (Maybe it could depend on which compiler you
> compiled libc with, though?)

Hrm, yeah.  I've updated my system and I can't reproduce this.  As
best as I can guess, in the last month I updated gcc and the code that
gcc produced didn't quite interact with libc (from prior version of
gcc) correctly.  ::shrug:: Not really sure, but, it's not really that
important since only random() is failing. -sc

--
Sean Chittenden

Re: Regression testing failure: float8...

From
Darcy Buskermolen
Date:
I have several pre 4.0 boxes (2.2.x and 3.x) in production ruinning postgre=
SQL

On Sunday 16 February 2003 16:11, Tom Lane wrote:
> Sean Chittenden <sean@chittenden.org> writes:
> > Howdy.  Just a quick FYI, but I was running some regression tests on
> > HEAD and noticed that float8 is failing on FreeBSD 5.  FreeBSD 4 seems
> > to be fine.  Any suggestions on what I can poke at or where I should
> > look regarding this?  -sc
>
> Looks like freebsd has decided to become mainstream on underflow
> handling.  You need to figure out how we should adjust the resultmap
> entry for freebsd to not select float8-small-is-zero.out on 5.
> Possibly
>     float8/i.86-.*-freebsd4=3Dfloat8-small-is-zero
> would do --- are there any pre-4.0 boxes still out there?
>
>             regards, tom lane
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org

--=20
Darcy Buskermolen
Wavefire Technologies Corp.
ph: 250.717.0200
fx:  250.763.1759
http://www.wavefire.com