Re: pl/perl extension fails on Windows
Ashutosh Sharma <ashu.coek88@gmail.com>
From: Ashutosh Sharma <ashu.coek88@gmail.com>
To: Christoph Berg <myon@debian.org>, Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2017-07-31T06:11:58Z
Lists: pgsql-hackers
Hi Christoph, On Mon, Jul 31, 2017 at 9:18 AM, Ashutosh Sharma <ashu.coek88@gmail.com> wrote: > Hi Christoph, > > On Mon, Jul 31, 2017 at 2:44 AM, Christoph Berg <myon@debian.org> wrote: >> Re: Tom Lane 2017-07-28 <3254.1501276475@sss.pgh.pa.us> >>> Christoph Berg <myon@debian.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@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
Commits
-
MSVC: Test whether 32-bit Perl needs -D_USE_32BIT_TIME_T.
- 1886899420ce 9.3.21 landed
- aed8d41af628 9.4.16 landed
- 1c1a572d055f 9.5.11 landed
- 140fa2fbad94 9.6.7 landed
- 9b5c99790e83 10.2 landed
- 65a00f30352a 11.0 landed
-
Further tweaks to compiler flags for PL/Perl on Windows.
- f7e4783ddbef 9.2.23 landed
- bc4404405f21 9.3.19 landed
- 4f862351d20b 9.4.14 landed
- bff216d8789f 9.5.9 landed
- c343314882f1 9.6.5 landed
- 1d7a479d22f6 10.0 landed
- b5178c5d08ca 11.0 landed
-
Absorb -D_USE_32BIT_TIME_T switch from Perl, if relevant.
- e3335ec0b6a6 9.2.23 landed
- 5a5c2feca3fd 10.0 landed
- 3883be3eae97 9.6.5 landed
- 25169b948e13 9.3.19 landed
- 1621a75531c8 9.5.9 landed
- 01de7ea85378 9.4.14 landed
-
PL/Perl portability fix: absorb relevant -D switches from Perl.
- df52739ce3e7 9.5.8 landed
- 9cbdc689418b 9.4.13 landed
- 456c7dff2af1 9.2.22 landed
- 1e58c503ec46 9.6.4 landed
- 0d8f015e7726 9.3.18 landed
- 3c163a7fc76d 10.0 landed
-
PL/Perl portability fix: avoid including XSUB.h in plperl.c.
- d48180ec812d 9.4.13 landed
- b92f17277eb9 9.3.18 landed
- b4b958251fbf 9.2.22 landed
- 99eea89dbe31 9.5.8 landed
- 30a5c8bfbd7b 9.6.4 landed
- bebe174bb446 10.0 landed