Thread: make check error on -HEAD

make check error on -HEAD

From
Devrim GUNDUZ
Date:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


Hi,

I'm getting this error on two different servers, one if them is the server 
that I build PostgreSQL from CVS daily, the other one is a fresh one (used 
to double-check the error)

Two servers have LANG="en_US.UTF-8". They are RHEL 3.0 Update 3 with gcc 
3.2.3-42, and bison 1.875c:
======================================================================

============== creating database "regression"         ==============
CREATE DATABASE
pg_regress: could not set database default locales
make[2]: *** [check] Error 2
rm regress.o
make[2]: Leaving directory `/home/pgsql80/pgsql/src/test/regress'
make[1]: *** [check] Error 2
make[1]: Leaving directory `/home/pgsql80/pgsql/src/test'
make: *** [check] Error 2

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

Any comments?

Regards,
- --
Devrim GUNDUZ 
devrim~gunduz.org                devrim.gunduz~linux.org.tr            http://www.tdmsoft.com
http://www.gunduz.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQFBhMLwtl86P3SPfQ4RAibUAJ4h/gvrWr76FPjJvJRnGsF3TXEY/ACfWJ5d
z+wKbSmMSgGaoBXCmeEX/gw=
=3l/A
-----END PGP SIGNATURE-----


Re: make check error on -HEAD

From
Tom Lane
Date:
Devrim GUNDUZ <devrim@gunduz.org> writes:
> pg_regress: could not set database default locales

What shows up in the postmaster log file?
        regards, tom lane


Re: make check error on -HEAD

From
Devrim GUNDUZ
Date:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


Hi,

On Sun, 31 Oct 2004, Tom Lane wrote:

>> pg_regress: could not set database default locales
>
> What shows up in the postmaster log file?

You mean src/test/regress/log/postmaster.log, right?

Actually not that much:

LOG:  database system was shut down at 2004-10-31 18:41:23 EET
LOG:  checkpoint record is at 0/A30FE8
LOG:  redo record is at 0/A30FE8; undo record is at 0/0; shutdown TRUE
LOG:  next transaction ID: 492; next OID: 17230
LOG:  database system is ready
LOG:  unexpected EOF on client connection
LOG:  received fast shutdown request
LOG:  shutting down
LOG:  database system is shut down

Regards,
- --
Devrim GUNDUZ 
devrim~gunduz.org                devrim.gunduz~linux.org.tr            http://www.tdmsoft.com
http://www.gunduz.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQFBhRi8tl86P3SPfQ4RAjYeAKC75B6SPdZUR8SNZ1nOu5cXQZ1S1ACfbUhx
rSL56HYBFmpltjTEF3s2SQQ=
=vZ60
-----END PGP SIGNATURE-----


Re: make check error on -HEAD

From
Tom Lane
Date:
Devrim GUNDUZ <devrim@gunduz.org> writes:
>>> pg_regress: could not set database default locales
>> 
>> What shows up in the postmaster log file?

> You mean src/test/regress/log/postmaster.log, right?
> Actually not that much:

> LOG:  unexpected EOF on client connection

Hmm, that seems to be the only sign of trouble, which I guess means we
have to conclude the problem is on the client side not the server side.
The part of the pg_regress script that is failing is evidently

"$bindir/psql" $psql_options -c "\
checkpoint;
alter database \"$dbname\" set lc_messages to 'C';
alter database \"$dbname\" set lc_monetary to 'C';
alter database \"$dbname\" set lc_numeric to 'C';
alter database \"$dbname\" set lc_time to 'C';" "$dbname" 2>/dev/null
if [ $? -ne 0 ]; then   echo "$me: could not set database default locales"   (exit 2); exit
fi

Try removing the "2>/dev/null" bit so that you can see if any error
messages come out from psql.
        regards, tom lane


Re: make check error on -HEAD

From
Devrim GUNDUZ
Date:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


Hi,

On Sun, 31 Oct 2004, Tom Lane wrote:

>> LOG:  unexpected EOF on client connection
>
> Hmm, that seems to be the only sign of trouble, which I guess means we
> have to conclude the problem is on the client side not the server side.
> The part of the pg_regress script that is failing is evidently
>
> "$bindir/psql" $psql_options -c "\
> checkpoint;
> alter database \"$dbname\" set lc_messages to 'C';
> alter database \"$dbname\" set lc_monetary to 'C';
> alter database \"$dbname\" set lc_numeric to 'C';
> alter database \"$dbname\" set lc_time to 'C';" "$dbname" 2>/dev/null
> if [ $? -ne 0 ]; then
>    echo "$me: could not set database default locales"
>    (exit 2); exit
> fi
>
> Try removing the "2>/dev/null" bit so that you can see if any error
> messages come out from psql.

Ok, we have a detailed error now:

/home/pgsql80/pgsql/src/test/regress/./tmp_check/install//usr/local/pgsql/bin/psql: 
relocation error: 
/home/pgsql80/pgsql/src/test/regress/./tmp_check/install//usr/local/pgsql/bin/psql: 
undefined symbol: PQgetCancel
pg_regress: could not set database default locales
make[2]: *** [check] Error 2
make[2]: Leaving directory `/home/pgsql80/pgsql/src/test/regress'


Regards,
- --
Devrim GUNDUZ 
devrim~gunduz.org                devrim.gunduz~linux.org.tr            http://www.tdmsoft.com
http://www.gunduz.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQFBhR0utl86P3SPfQ4RAjbWAJ9HsRqk7uW2yZTUbI/i4Ds+nMW6aQCfXlzx
BI5pV37UYbKEjXgMxZSpfLY=
=Ocrg
-----END PGP SIGNATURE-----


Re: make check error on -HEAD

From
Tom Lane
Date:
Devrim GUNDUZ <devrim@gunduz.org> writes:
>> Try removing the "2>/dev/null" bit so that you can see if any error
>> messages come out from psql.

> Ok, we have a detailed error now:

> /home/pgsql80/pgsql/src/test/regress/./tmp_check/install//usr/local/pgsql/bin/psql: 
> relocation error: 
> /home/pgsql80/pgsql/src/test/regress/./tmp_check/install//usr/local/pgsql/bin/psql: 
> undefined symbol: PQgetCancel
> pg_regress: could not set database default locales

Oh, so you are using yesterday's libpq.so shared library ;-)

I am not sure there is any way around that except to go ahead and
install today's libpq.  pg_regress can't do much more than set
LD_LIBRARY_PATH, and evidently that's not enough to make the Linux
dynamic loader take the version of libpq.so that's in the temp
installation rather than the one you previously installed.
        regards, tom lane


Re: make check error on -HEAD

From
Bruce Momjian
Date:
Tom Lane wrote:
> Devrim GUNDUZ <devrim@gunduz.org> writes:
> >> Try removing the "2>/dev/null" bit so that you can see if any error
> >> messages come out from psql.
> 
> > Ok, we have a detailed error now:
> 
> > /home/pgsql80/pgsql/src/test/regress/./tmp_check/install//usr/local/pgsql/bin/psql: 
> > relocation error: 
> > /home/pgsql80/pgsql/src/test/regress/./tmp_check/install//usr/local/pgsql/bin/psql: 
> > undefined symbol: PQgetCancel
> > pg_regress: could not set database default locales
> 
> Oh, so you are using yesterday's libpq.so shared library ;-)
> 
> I am not sure there is any way around that except to go ahead and
> install today's libpq.  pg_regress can't do much more than set
> LD_LIBRARY_PATH, and evidently that's not enough to make the Linux
> dynamic loader take the version of libpq.so that's in the temp
> installation rather than the one you previously installed.

Yep, I saw the same thing here and make install fixed it.

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
359-1001+  If your life is a hard drive,     |  13 Roberts Road +  Christ can be your backup.        |  Newtown Square,
Pennsylvania19073
 


Re: make check error on -HEAD

From
Tom Lane
Date:
Bruce Momjian <pgman@candle.pha.pa.us> writes:
> Tom Lane wrote:
>> Oh, so you are using yesterday's libpq.so shared library ;-)
>> 
>> I am not sure there is any way around that except to go ahead and
>> install today's libpq.  pg_regress can't do much more than set
>> LD_LIBRARY_PATH, and evidently that's not enough to make the Linux
>> dynamic loader take the version of libpq.so that's in the temp
>> installation rather than the one you previously installed.

> Yep, I saw the same thing here and make install fixed it.

I looked at this a bit more and found that on Linux, the dynamic
loader is documented to search "rpath" before LD_LIBRARY_PATH;
so had we not specified an rpath when building the psql executable,
pg_regress would have worked as intended.  Sounds like BSD is the same.

Now, not specifying rpath seems like a sure loss for every context
except "make check" with an uninstalled version.  So I'm afraid we have
to live with it.  It might be worthwhile for build-farm builds to use
"configure --disable-rpath", if they want to "make check" without
installing first.
        regards, tom lane


Re: make check error on -HEAD

From
Andrew Dunstan
Date:

Tom Lane wrote:

>Bruce Momjian <pgman@candle.pha.pa.us> writes:
>  
>
>>Tom Lane wrote:
>>    
>>
>>>Oh, so you are using yesterday's libpq.so shared library ;-)
>>>
>>>I am not sure there is any way around that except to go ahead and
>>>install today's libpq.  pg_regress can't do much more than set
>>>LD_LIBRARY_PATH, and evidently that's not enough to make the Linux
>>>dynamic loader take the version of libpq.so that's in the temp
>>>installation rather than the one you previously installed.
>>>      
>>>
>
>  
>
>>Yep, I saw the same thing here and make install fixed it.
>>    
>>
>
>I looked at this a bit more and found that on Linux, the dynamic
>loader is documented to search "rpath" before LD_LIBRARY_PATH;
>so had we not specified an rpath when building the psql executable,
>pg_regress would have worked as intended.  Sounds like BSD is the same.
>
>Now, not specifying rpath seems like a sure loss for every context
>except "make check" with an uninstalled version.  So I'm afraid we have
>to live with it.  It might be worthwhile for build-farm builds to use
>"configure --disable-rpath", if they want to "make check" without
>installing first.
>
>
>  
>

The build-farm script removes the installation directory (we don't use 
the default, of course) after each run, so the library won't ever be 
found in the rpath during "make check", regardless of this setting.

cheers

andrew


Re: make check error on -HEAD

From
Neil Conway
Date:
On Mon, 2004-11-01 at 07:51, Tom Lane wrote:
> I looked at this a bit more and found that on Linux, the dynamic
> loader is documented to search "rpath" before LD_LIBRARY_PATH;
> so had we not specified an rpath when building the psql executable,
> pg_regress would have worked as intended.  Sounds like BSD is the same.

Seems Solaris does it the other way:
   http://list-archive.xemacs.org/xemacs-beta/200001/msg00328.html

although Drepper says in the thread that searching rpath before
LD_LIBRARY_PATH is per standard.

> Now, not specifying rpath seems like a sure loss for every context
> except "make check" with an uninstalled version.  So I'm afraid we have
> to live with it.

This is a kludge, but could we specify LD_PRELOAD?

-Neil




Re: make check error on -HEAD

From
Andrew Dunstan
Date:

Tom Lane wrote:

>Devrim GUNDUZ <devrim@gunduz.org> writes:
>  
>
>>>Try removing the "2>/dev/null" bit so that you can see if any error
>>>messages come out from psql.
>>>      
>>>
>
>  
>
>>Ok, we have a detailed error now:
>>    
>>
>
>  
>
>>/home/pgsql80/pgsql/src/test/regress/./tmp_check/install//usr/local/pgsql/bin/psql: 
>>relocation error: 
>>/home/pgsql80/pgsql/src/test/regress/./tmp_check/install//usr/local/pgsql/bin/psql: 
>>undefined symbol: PQgetCancel
>>pg_regress: could not set database default locales
>>    
>>
>
>Oh, so you are using yesterday's libpq.so shared library ;-)
>
>I am not sure there is any way around that except to go ahead and
>install today's libpq.  pg_regress can't do much more than set
>LD_LIBRARY_PATH, and evidently that's not enough to make the Linux
>dynamic loader take the version of libpq.so that's in the temp
>installation rather than the one you previously installed.
>
>
>  
>

I have just seen this failure on Windows - it appears to have nothing to 
do there with finding an out of date libpq.

cheers

andrew


Re: make check error on -HEAD

From
Tom Lane
Date:
Andrew Dunstan <andrew@dunslane.net> writes:
>>> pg_regress: could not set database default locales

> I have just seen this failure on Windows - it appears to have nothing to 
> do there with finding an out of date libpq.

Actually, *any* failure in pg_regress's first attempt to invoke psql
yields this message.  I tweaked the script yesterday to not suppress
stderr; do you have that update yet?
        regards, tom lane


Re: make check error on -HEAD

From
Andrew Dunstan
Date:

Tom Lane wrote:

>Andrew Dunstan <andrew@dunslane.net> writes:
>  
>
>>>>pg_regress: could not set database default locales
>>>>        
>>>>
>
>  
>
>>I have just seen this failure on Windows - it appears to have nothing to 
>>do there with finding an out of date libpq.
>>    
>>
>
>Actually, *any* failure in pg_regress's first attempt to invoke psql
>yields this message.  I tweaked the script yesterday to not suppress
>stderr; do you have that update yet?
>
>
>  
>

Yes, but on Windows it doesn't give anything on stderr, it gives me a 
nasty popup with no useful info I can see, and wants to send info off to 
microsoft.

cheers

andrew