Tru64/Alpha problems

Поиск
Список
Период
Сортировка
От Andrew Dunstan
Тема Tru64/Alpha problems
Дата
Msg-id 4429411B.2040100@dunslane.net
обсуждение исходный текст
Ответы Re: Tru64/Alpha problems  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Honda Shigehiro has diagnosed the longstanding problems with his
Tru64/Alpha buildfarm member (bear). See below.

First, it appears that there is a problem with the system getaddrinfo(),
which configure reports as usable, but turns out not to be. Our current
configure test checks the return value of getaddrinfo("", "", NULL,
NULL) but I am wondering if we should test for "localhost" instead of ""
as the first parameter.

Second, it appears that this platform apparently doesn't handle Infinity
and NaN well. The regression diffs are attached.

cheers

andrew

-------- Original Message --------
Subject:     Re: postgresql buildfarm member bear
Date:     Tue, 28 Mar 2006 21:53:15 +0900 (JST)
From:     Honda Shigehiro <fwif0083@mb.infoweb.ne.jp>
To:     andrew@dunslane.net
CC:     fwif0083@mb.infoweb.ne.jp
References:     <44229B69.2090909@dunslane.net>
<20060323.225736.41630581.fwif0083@mb.infoweb.ne.jp>
<4422ACED.7030506@dunslane.net>




I found the cause. Tru64's getaddrinfo seems something wrong.
(I use version 5.0, but with google search, this is same until
version 5.1B.) I had used only with Unix domain socket.

So I succeed to start server with Unix Domain Socket(ex. make check).
But with "listen_addresses = 'localhost'", fail with:
  LOG:  could not translate host name "localhost", service "5432" to address: servname not supported for ai_socktype

To solve this, I had change to use src/port/getaddrinfo.c.
(I have little knowledge about autoconf...so ugly...)
Is there smart way which do not need to change code?

(1) change configure script and run it
bash-2.05b$ diff configure.aaa configure
14651c14651
< #define HAVE_GETADDRINFO 1
---
> /* #define HAVE_GETADDRINFO 1 */

(2) run make command
It fail by some undefined symbol. After the fail, change directory
to src/port and type:
cc -std   -I../../src/port  -I../../src/include -I/usr/local/include -c getaddrinfo.c -o getaddrinfo.o
ar crs libpgport.a isinf.o getopt_long.o copydir.o dirmod.o exec.o noblock.o path.o pipe.o pgsleep.o pgstrcasecmp.o
sprompt.othread.o getaddrinfo.o 
ar crs libpgport_srv.a isinf.o getopt_long.o copydir.o dirmod_srv.o exec_srv.o noblock.o path.o pipe.o pgsleep.o
pgstrcasecmp.osprompt.o thread_srv.o getaddrinfo.o 

(3) re-run make command

(4) check make check and make installcheck
float4 and float8 tests are failed in both cases.




*** ./expected/float4.out    Thu Apr  7 10:51:40 2005
--- ./results/float4.out    Tue Mar 28 21:03:10 2006
***************
*** 35,69 ****
  ERROR:  invalid input syntax for type real: "123            5"
  -- special inputs
  SELECT 'NaN'::float4;
!  float4
! --------
!     NaN
! (1 row)
!
  SELECT 'nan'::float4;
!  float4
! --------
!     NaN
! (1 row)
!
  SELECT '   NAN  '::float4;
!  float4
! --------
!     NaN
! (1 row)
!
  SELECT 'infinity'::float4;
!   float4
! ----------
!  Infinity
! (1 row)
!
  SELECT '          -INFINiTY   '::float4;
!   float4
! -----------
!  -Infinity
! (1 row)
!
  -- bad special inputs
  SELECT 'N A N'::float4;
  ERROR:  invalid input syntax for type real: "N A N"
--- 35,54 ----
  ERROR:  invalid input syntax for type real: "123            5"
  -- special inputs
  SELECT 'NaN'::float4;
! ERROR:  floating-point exception
! DETAIL:  An invalid floating-point operation was signaled. This probably means an out-of-range result or an invalid
operation,such as division by zero. 
  SELECT 'nan'::float4;
! ERROR:  floating-point exception
! DETAIL:  An invalid floating-point operation was signaled. This probably means an out-of-range result or an invalid
operation,such as division by zero. 
  SELECT '   NAN  '::float4;
! ERROR:  floating-point exception
! DETAIL:  An invalid floating-point operation was signaled. This probably means an out-of-range result or an invalid
operation,such as division by zero. 
  SELECT 'infinity'::float4;
! ERROR:  floating-point exception
! DETAIL:  An invalid floating-point operation was signaled. This probably means an out-of-range result or an invalid
operation,such as division by zero. 
  SELECT '          -INFINiTY   '::float4;
! ERROR:  floating-point exception
! DETAIL:  An invalid floating-point operation was signaled. This probably means an out-of-range result or an invalid
operation,such as division by zero. 
  -- bad special inputs
  SELECT 'N A N'::float4;
  ERROR:  invalid input syntax for type real: "N A N"
***************
*** 72,90 ****
  SELECT ' INFINITY    x'::float4;
  ERROR:  invalid input syntax for type real: " INFINITY    x"
  SELECT 'Infinity'::float4 + 100.0;
! ERROR:  type "double precision" value out of range: overflow
  SELECT 'Infinity'::float4 / 'Infinity'::float4;
!  ?column?
! ----------
!       NaN
! (1 row)
!
  SELECT 'nan'::float4 / 'nan'::float4;
!  ?column?
! ----------
!       NaN
! (1 row)
!
  SELECT '' AS five, * FROM FLOAT4_TBL;
   five |     f1
  ------+-------------
--- 57,70 ----
  SELECT ' INFINITY    x'::float4;
  ERROR:  invalid input syntax for type real: " INFINITY    x"
  SELECT 'Infinity'::float4 + 100.0;
! ERROR:  floating-point exception
! DETAIL:  An invalid floating-point operation was signaled. This probably means an out-of-range result or an invalid
operation,such as division by zero. 
  SELECT 'Infinity'::float4 / 'Infinity'::float4;
! ERROR:  floating-point exception
! DETAIL:  An invalid floating-point operation was signaled. This probably means an out-of-range result or an invalid
operation,such as division by zero. 
  SELECT 'nan'::float4 / 'nan'::float4;
! ERROR:  floating-point exception
! DETAIL:  An invalid floating-point operation was signaled. This probably means an out-of-range result or an invalid
operation,such as division by zero. 
  SELECT '' AS five, * FROM FLOAT4_TBL;
   five |     f1
  ------+-------------

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

*** ./expected/float8.out    Thu Jun  9 06:15:29 2005
--- ./results/float8.out    Tue Mar 28 21:03:10 2006
***************
*** 35,57 ****
  ERROR:  invalid input syntax for type double precision: "123           5"
  -- special inputs
  SELECT 'NaN'::float8;
!  float8
! --------
!     NaN
! (1 row)
!
  SELECT 'nan'::float8;
!  float8
! --------
!     NaN
! (1 row)
!
  SELECT '   NAN  '::float8;
!  float8
! --------
!     NaN
! (1 row)
!
  SELECT 'infinity'::float8;
    float8
  ----------
--- 35,48 ----
  ERROR:  invalid input syntax for type double precision: "123           5"
  -- special inputs
  SELECT 'NaN'::float8;
! ERROR:  floating-point exception
! DETAIL:  An invalid floating-point operation was signaled. This probably means an out-of-range result or an invalid
operation,such as division by zero. 
  SELECT 'nan'::float8;
! ERROR:  floating-point exception
! DETAIL:  An invalid floating-point operation was signaled. This probably means an out-of-range result or an invalid
operation,such as division by zero. 
  SELECT '   NAN  '::float8;
! ERROR:  floating-point exception
! DETAIL:  An invalid floating-point operation was signaled. This probably means an out-of-range result or an invalid
operation,such as division by zero. 
  SELECT 'infinity'::float8;
    float8
  ----------
***************
*** 72,90 ****
  SELECT ' INFINITY    x'::float8;
  ERROR:  invalid input syntax for type double precision: " INFINITY    x"
  SELECT 'Infinity'::float8 + 100.0;
! ERROR:  type "double precision" value out of range: overflow
  SELECT 'Infinity'::float8 / 'Infinity'::float8;
!  ?column?
! ----------
!       NaN
! (1 row)
!
  SELECT 'nan'::float8 / 'nan'::float8;
!  ?column?
! ----------
!       NaN
! (1 row)
!
  SELECT '' AS five, * FROM FLOAT8_TBL;
   five |          f1
  ------+----------------------
--- 63,76 ----
  SELECT ' INFINITY    x'::float8;
  ERROR:  invalid input syntax for type double precision: " INFINITY    x"
  SELECT 'Infinity'::float8 + 100.0;
! ERROR:  floating-point exception
! DETAIL:  An invalid floating-point operation was signaled. This probably means an out-of-range result or an invalid
operation,such as division by zero. 
  SELECT 'Infinity'::float8 / 'Infinity'::float8;
! ERROR:  floating-point exception
! DETAIL:  An invalid floating-point operation was signaled. This probably means an out-of-range result or an invalid
operation,such as division by zero. 
  SELECT 'nan'::float8 / 'nan'::float8;
! ERROR:  floating-point exception
! DETAIL:  An invalid floating-point operation was signaled. This probably means an out-of-range result or an invalid
operation,such as division by zero. 
  SELECT '' AS five, * FROM FLOAT8_TBL;
   five |          f1
  ------+----------------------
***************
*** 342,348 ****
     SET f1 = FLOAT8_TBL.f1 * '-1'
     WHERE FLOAT8_TBL.f1 > '0.0';
  SELECT '' AS bad, f.f1 * '1e200' from FLOAT8_TBL f;
! ERROR:  type "double precision" value out of range: overflow
  SELECT '' AS bad, f.f1 ^ '1e200' from FLOAT8_TBL f;
  ERROR:  result is out of range
  SELECT '' AS bad, ln(f.f1) from FLOAT8_TBL f where f.f1 = '0.0' ;
--- 328,335 ----
     SET f1 = FLOAT8_TBL.f1 * '-1'
     WHERE FLOAT8_TBL.f1 > '0.0';
  SELECT '' AS bad, f.f1 * '1e200' from FLOAT8_TBL f;
! ERROR:  floating-point exception
! DETAIL:  An invalid floating-point operation was signaled. This probably means an out-of-range result or an invalid
operation,such as division by zero. 
  SELECT '' AS bad, f.f1 ^ '1e200' from FLOAT8_TBL f;
  ERROR:  result is out of range
  SELECT '' AS bad, ln(f.f1) from FLOAT8_TBL f where f.f1 = '0.0' ;

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


В списке pgsql-hackers по дате отправления:

Предыдущее
От: "Pavel Stehule"
Дата:
Сообщение: Re: proposal - plpgsql: execute using into
Следующее
От: Tom Lane
Дата:
Сообщение: Re: [GENERAL] PANIC: heap_update_redo: no block