Re: BUG #12344: libcurses issue with psql binary of Solaris package

From: Egoitz Aurrekoetxea <egoitz(at)sarenet(dot)es>
To: pgsql-bugs(at)postgresql(dot)org
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Subject: Re: BUG #12344: libcurses issue with psql binary of Solaris package
Date: 2014-12-27 17:35:58
Message-ID: 15D98006-52CC-4776-89C5-0A9826807853@sarenet.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Good afternoon,

Ok, so….

Have been debugging all this issue and have seen the following details and assumptions :

- Binary package for Solaris downloadable in http://www.postgresql.org/ftp/binary/v9.4.0/solaris/solaris11/i386/ <http://www.postgresql.org/ftp/binary/v9.4.0/solaris/solaris11/i386/> will probably be for Solaris 11.0 not 11.1 or 11.2… unless it seems to be built there…
- It has been build with Solaris Studio 11 compilers which don’t really know for Solaris 11 but for Solaris 11.2 are slightly old…. apart… why this compilers were used instead of GCC installable with pkg install?
- Have found in the config (pg_config output) too some flag that seem to be only valid for Sparc arch…

And some other thing I did not remember at present instant but I believe saw….

Well like I needed to use Postgresql on Solaris… I rebuilt it… I did use all systems default libraries… I didn’t install any kind of Sunfreeware or whatever library….

So I have build successfully (unless until now, have not seen any issue with the binaries) in Solaris 11.2 concretely the OS is:

uname -ar
SunOS themachine 5.11 11.2 i86pc i386 i86pc

cat /etc/release
Oracle Solaris 11.2 X86
Copyright (c) 1983, 2014, Oracle and/or its affiliates. All rights reserved.
Assembled 23 June 2014

with just doing :

pkg install gcc-c++-48 gcc-c-48

export CC='/usr/gcc/4.8/bin/gcc -m64'
export CXX='/usr/gcc/4.8/bin/c++ -m64'
export LDFLAGS='-L/usr/local/lib -R/usr/local/lib'
export CPPFLAGS='-I/usr/local/include'
export CFLAGS='-O3'
export PATH=$PATH':/usr/gnu/bin'

./configure --prefix=/opt/postgres94 --enable-nls --with-system-tzdata=/usr/share/lib/zoneinfo --with-tclconfig=/usr/lib --with-python --with-tcl --with-pam --with-libedit-preferred --with-libxml --with-libxslt --enable-thread-safety --enable-integer-datetimes
gmake
gmake install

Perhaps it would be better (instead of providing binaries) to include a script in the sources tar.gz that if you were in Solaris (I say in Solaris, because in FreeBSD for example, which is the main OS I do use, you build it easilly from ports, and in other systems like Linux
you normally have prebuilt) which checks the env, the packages installed and so… or just directly, to say to everybody… "For installing Postgresql in Solaris, you need to have a Virgin Solaris installation and just run later the -build-on-solaris.sh-" or whatever script in order
to start everybody in the same beginning point and later to run a script which for example does this same I have wrote before. I would say this is better than having, say old binaries or…. and like building, let’s say, enforces you to have all required system libraries if you
want the code to be built if you say everyone to start at the same beginning point I think could be perhaps easier to offer an easy way to install Postgresql in Solaris.

Thank you very much for you’re help and hope this helps too,
Best regards,

Egoitz Aurrekoetxea
Departamento de sistemas
944 209 470
Parque Tecnológico. Edificio 103
48170 Zamudio (Bizkaia)
egoitz(at)sarenet(dot)es <mailto:egoitz(at)sarenet(dot)es>
www.sarenet.es <http://www.sarenet.es/>
Antes de imprimir este correo electrónico piense si es necesario hacerlo.

> El 26/12/2014, a las 17:55, pgsql-bugs-owner(at)postgresql(dot)org escribió:
>
> Your message to pgsql-bugs has been delayed, and requires the approval
> of the moderators, for the following reason(s):
>
> The author (Egoitz Aurrekoetxea <egoitz(at)sarenet(dot)es>)
> is not a member of any of the restrict_post groups.
>
> If you do not wish the message to be posted, or have other concerns,
> please send a message to the list owners at the following address:
> pgsql-bugs-owner(at)postgresql(dot)org
>
> Asunto: Re: [BUGS] BUG #12344: libcurses issue with psql binary of Solaris package
> De: Egoitz Aurrekoetxea <egoitz(at)sarenet(dot)es>
> Fecha: 26 de diciembre de 2014, 17:55:40 CET
> Cc: pgsql-bugs(at)postgresql(dot)org
> Para: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
>
>
> Hello!,
>
> And by the way… have done some checks….
>
> Have just build Postgresql 9.4.0 in Solaris 11.2 with this flags….
>
> export CC='/usr/gcc/4.8/bin/gcc -m64'
> export CXX='/usr/gcc/4.8/bin/c++ -m64'
> export LDFLAGS='-L/usr/local/lib -R/usr/local/lib'
> export CPPFLAGS='-I/usr/local/include'
>
> later
>
> ./configure --prefix=/tmp/postgresql-prueba
> gmake
>
> Just for ensuring was a bug in some Solaris library…… and not a versioning issue (the package is compiled against or whatever….) or whatever…
>
> /tmp/prueba-comp-postgres/postgresql-9.4.0/src/bin/psql# ./psql
> ld.so.1: psql: fatal: libpq.so.5: open failed: No such file or directory
> Killed
>
> It has not build libpq which I don’t really know why not… but like was just for the testing purpose…. have copied the Postgresql binary package for Solaris libpq.so* files….
>
> /tmp/prueba-comp-postgres/postgresql-9.4.0/src/bin/psql# cp /usr/postgres/9.4-pgdg/lib/libpq.so* .
>
> Later…. have done a :
>
> export LD_LIBRARY_PATH='/tmp/prueba-comp-postgres/postgresql-9.4.0/src/bin/psql'
> And voilà :
> /tmp/prueba-comp-postgres/postgresql-9.4.0/src/bin/psql# ./psql
> psql: FATAL: role "root" does not exist
> root(at)themachine:/tmp/prueba-comp-postgres/postgresql-9.4.0/src/bin/psql# ./psql -U thedatabase -h localhost
> psql (9.4.0)
> Type "help" for help.
>
> thedatabase=# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
> thedatabase-#
> thedatabase-#
> thedatabase-# ;
> NOTICE: identifier "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" will be truncated to "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
> ERROR: syntax error at or near "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
> LINE 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
> ^
> thedatabase=# select * from pg_stat_activity;
> thedatabase=# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
> thedatabase-# ;
> NOTICE: identifier "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" will be truncated to "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
> ERROR: syntax error at or near "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
> LINE 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
> ^
> thedatabase=#
> thedatabase=#
> thedatabase=#
> thedatabase=# \q
> root(at)themachine:/tmp/prueba-comp-postgres/postgresql-9.4.0/src/bin/psql#
>
> It’s not being broken now…… So perhaps is that it was build against for instance Solaris 11 not Solaris 11.2 and some issue exist with that linkage…. done with a previous version…..
>
> If you tell me how… I wouldn’t mind creating it for Solaris 11.2 again the Postgresql package and donating it to you….
> What is the proper way of building in Solaris?? With libpq and all components?
>
> Thank you so much,
> Best regards,
>
>
> Egoitz Aurrekoetxea
> Departamento de sistemas
> 944 209 470
> Parque Tecnológico. Edificio 103
> 48170 Zamudio (Bizkaia)
> egoitz(at)sarenet(dot)es <mailto:egoitz(at)sarenet(dot)es>
> www.sarenet.es <http://www.sarenet.es/>
> Antes de imprimir este correo electrónico piense si es necesario hacerlo.
>
>> El 26/12/2014, a las 17:07, Egoitz Aurrekoetxea <egoitz(at)sarenet(dot)es <mailto:egoitz(at)sarenet(dot)es>> escribió:
>>
>> Good afternoon,
>>
>> Thank you so much for the fast response. If I let it that way, without rebuilding and knowing the issue in one of the libraries mentioned
>> by you, could this just bug end by affecting the Postgresql server part in some way?.
>>
>> Thank you so much,
>> Best regards,
>>
>>
>> Egoitz Aurrekoetxea
>> Departamento de sistemas
>> 944 209 470
>> Parque Tecnológico. Edificio 103
>> 48170 Zamudio (Bizkaia)
>> egoitz(at)sarenet(dot)es <mailto:egoitz(at)sarenet(dot)es>
>> www.sarenet.es <http://www.sarenet.es/>
>> Antes de imprimir este correo electrónico piense si es necesario hacerlo.
>>
>>> El 26/12/2014, a las 16:39, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us <mailto:tgl(at)sss(dot)pgh(dot)pa(dot)us>> escribió:
>>>
>>> egoitz(at)sarenet(dot)es <mailto:egoitz(at)sarenet(dot)es> writes:
>>>> I'm giving a try to
>>>> https://ftp.postgresql.org/pub/binary/v9.4.0/solaris/solaris11/i386/postgresql-9.4.0-S11.i386-64.tar.bz2 <https://ftp.postgresql.org/pub/binary/v9.4.0/solaris/solaris11/i386/postgresql-9.4.0-S11.i386-64.tar.bz2>
>>>> under Solaris 11.2. All seems to be running fine although I have found an
>>>> issue running the psql binary. It generates a core if you hit for example
>>>> CTRL+A after writting an amount of text. I do paste here the test content
>>>> and the core in order to fixed...
>>>
>>> This is evidently a bug in libreadline or libedit (whichever you're
>>> using), and almost certainly has nothing to do with psql proper.
>>>
>>> The mention of el_gets() in the stack trace makes me suspect that it's
>>> libedit, which is not terribly surprising because frankly we've seen a
>>> darn lot of nasty bugs in that library. They do fix 'em, so you could try
>>> getting a newer version of libedit. Or you could get GNU readline and
>>> rebuild against that. TBH I'd recommend the latter solution.
>>>
>>> regards, tom lane
>>
>
>
>

Browse pgsql-bugs by date

  From Date Subject
Next Message Viktor Shitkovskiy 2014-12-28 08:02:09 Rollback on include error in psql
Previous Message 德哥 2014-12-27 07:11:32 Re: BUG #12324: database's age less then max(relAGE) , and stream standby diff with master