Re: pl/perl extension fails on Windows

From: Ashutosh Sharma <ashu(dot)coek88(at)gmail(dot)com>
To: Christoph Berg <myon(at)debian(dot)org>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: pl/perl extension fails on Windows
Date: 2017-07-31 06:11:58
Message-ID: CAE9k0Pkpw09PWY35hfTDiZvHymZTiDOkEBk6SYuQh_WBJExSwg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi Christoph,

On Mon, Jul 31, 2017 at 9:18 AM, Ashutosh Sharma <ashu(dot)coek88(at)gmail(dot)com> wrote:
> Hi Christoph,
>
> On Mon, Jul 31, 2017 at 2:44 AM, Christoph Berg <myon(at)debian(dot)org> wrote:
>> Re: Tom Lane 2017-07-28 <3254(dot)1501276475(at)sss(dot)pgh(dot)pa(dot)us>
>>> Christoph Berg <myon(at)debian(dot)org> writes:
>>> > The plperl segfault on Debian's kfreebsd port I reported back in 2013
>>> > is also still present:
>>> > https://www.postgresql.org/message-id/20130515064201.GC704%40msgid.df7cb.de
>>> > https://buildd.debian.org/status/fetch.php?pkg=postgresql-10&arch=kfreebsd-amd64&ver=10~beta2-1&stamp=1499947011&raw=0
>>>
>>> So it'd be interesting to know if it's any better with HEAD ...
>>
>> Unfortunately not:
>>
>> ============== creating database "pl_regression" ==============
>> CREATE DATABASE
>> ALTER DATABASE
>> ============== installing plperl ==============
>> server closed the connection unexpectedly
>> This probably means the server terminated abnormally
>> before or while processing the request.
>> connection to server was lost
>>
>> The only interesting line in log/postmaster.log is a log_line_prefix-less
>> Util.c: loadable library and perl binaries are mismatched (got handshake key 0xd500080, needed 0xd600080)
>> ... which is unchanged from the beta2 output.
>

It seems like you are observing this crash on kFreeBSD OS. Well, me or
any of my colleague is not having this OS hence, i can't comment on
that. But, we do have Ubuntu OS (another Debian based OS) and I am not
seeing any server crash here as well,

edb(at)ubuntu:~/PGsources/postgresql/src/pl/plperl$ make check
make -C ../../../src/test/regress pg_regress
.....
/bin/mkdir -p '/home/edb/PGsources/postgresql'/tmp_install/log
make -C '../../..'
DESTDIR='/home/edb/PGsources/postgresql'/tmp_install install
>'/home/edb/PGsources/postgresql'/tmp_install/log/install.log 2>&1
PATH="/home/edb/PGsources/postgresql/tmp_install/home/edb/PGsources/postgresql/inst/bin:$PATH"
LD_LIBRARY_PATH="/home/edb/PGsources/postgresql/tmp_install/home/edb/PGsources/postgresql/inst/lib:$LD_LIBRARY_PATH"
../../../src/test/regress/pg_regress --temp-instance=./tmp_check
--inputdir=. --bindir= --dbname=pl_regression
--load-extension=plperl --load-extension=plperlu plperl plperl_lc
plperl_trigger plperl_shared plperl_elog plperl_util plperl_init
plperlu plperl_array plperl_plperlu
============== creating temporary instance ==============
============== initializing database system ==============
============== starting postmaster ==============
running on port 50848 with PID 43441
============== creating database "pl_regression" ==============
CREATE DATABASE
ALTER DATABASE
============== installing plperl ==============
CREATE EXTENSION
============== installing plperlu ==============
CREATE EXTENSION
============== running regression test queries ==============
test plperl ... ok
test plperl_lc ... ok
test plperl_trigger ... ok
test plperl_shared ... ok
test plperl_elog ... ok
test plperl_util ... ok
test plperl_init ... ok
test plperlu ... ok
test plperl_array ... ok
test plperl_plperlu ... ok
============== shutting down postmaster ==============
============== removing temporary instance ==============

As i mentioned in my earlier email, could you please delete the Utilc.
and SPI.c files from src/pl/plperl directory, rebuild the source code
and then let us know the results. Thanks.

>
> I am not able to reproduce this issue on my Windows or Linux box. Have
> you deleted Util.c and SPI.c files before starting with the build? The
> point is, these files are generated during build time and if they
> already exist then i think. they are not re generated. I would suggest
> to delete both the .c files and rebuild your source and then give a
> try.
>
> Here are the results i got on Windows and Linux respectively on HEAD,
>
> On Windows:
>
> C:\Users\ashu\git-clone-postgresql\postgresql\src\tools\msvc>vcregress.bat
> PLCHECK
> ============================================================
> Checking plperl
> (using postmaster on localhost, default port)
> ============== dropping database "pl_regression" ==============
> NOTICE: database "pl_regression" does not exist, skipping
> DROP DATABASE
> ============== creating database "pl_regression" ==============
> CREATE DATABASE
> ALTER DATABASE
> ============== installing plperl ==============
> CREATE EXTENSION
> ============== installing plperlu ==============
> CREATE EXTENSION
> ============== running regression test queries ==============
> test plperl ... ok
> test plperl_lc ... ok
> test plperl_trigger ... ok
> test plperl_shared ... ok
> test plperl_elog ... ok
> test plperl_util ... ok
> test plperl_init ... ok
> test plperlu ... ok
> test plperl_array ... ok
> test plperl_plperlu ... ok
>
> ======================
> All 10 tests passed.
> ======================
>
> On Linux:
>
> LD_LIBRARY_PATH="/home/ashu/git-clone-postgresql/postgresql/tmp_install/home/ashu/git-clone-postgresql/postgresql/TMP/postgres/lib"
> ../../../src/test/regress/pg_regress --temp-instance=./tmp_check
> --inputdir=. --bindir= --dbname=pl_regression
> --load-extension=plperl --load-extension=plperlu plperl plperl_lc
> plperl_trigger plperl_shared plperl_elog plperl_util plperl_init
> plperlu plperl_array
> ============== creating temporary instance ==============
> ============== initializing database system ==============
> ============== starting postmaster ==============
> running on port 50848 with PID 18140
> ============== creating database "pl_regression" ==============
> CREATE DATABASE
> ALTER DATABASE
> ============== installing plperl ==============
> CREATE EXTENSION
> ============== installing plperlu ==============
> CREATE EXTENSION
> ============== running regression test queries ==============
> test plperl ... ok
> test plperl_lc ... ok
> test plperl_trigger ... ok
> test plperl_shared ... ok
> test plperl_elog ... ok
> test plperl_util ... ok
> test plperl_init ... ok
> test plperlu ... ok
> test plperl_array ... ok
> ============== shutting down postmaster ==============
> ============== removing temporary instance ==============
>
> --
> With Regards,
> Ashutosh Sharma
> EnterpriseDB:http://www.enterprisedb.com

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Ashutosh Bapat 2017-07-31 06:22:30 Re: Adding support for Default partition in partitioning
Previous Message Craig Ringer 2017-07-31 06:08:58 Persistent wait event sets and socket changes