Regression testing failure: float8...

Started by Sean Chittendenabout 23 years ago6 messagesbugs
Jump to latest
#1Sean Chittenden
sean@chittenden.org

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

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Sean Chittenden (#1)
Re: Regression testing failure: float8...

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

#3Sean Chittenden
sean@chittenden.org
In reply to: Tom Lane (#2)
Re: Regression testing failure: float8...

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

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Sean Chittenden (#3)
Re: Regression testing failure: float8...

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

#5Sean Chittenden
sean@chittenden.org
In reply to: Tom Lane (#4)
Re: Regression testing failure: float8...

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

#6Darcy Buskermolen
darcy@wavefire.com
In reply to: Tom Lane (#2)
Re: Regression testing failure: float8...

I have several pre 4.0 boxes (2.2.x and 3.x) in production ruinning postgreSQL

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=float8-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

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