BUG #6204: Using plperl functions generate crash
The following bug has been logged online:
Bug reference: 6204
Logged by: pasman
Email address: pasman.p@gmail.com
PostgreSQL version: 9.1.0
Operating system: WinXP sp3
Description: Using plperl functions generate crash
Details:
After install postgresql 9.1.0 and Activestate perl 5.14.1 execute:
create function perl_test() returns void as
$$
$$
language plperl
This generates server crash. Log contain:
2011-09-14 11:08:22 CEST STATEMENT: create function perl_test() returns
void as $$ $$ language plperl
2011-09-14 11:08:47 CEST LOG: server process (PID 560) was terminated by
exception 0xC0000005
2011-09-14 11:08:47 CEST HINT: See C include file "ntstatus.h" for a
description of the hexadecimal value.
2011-09-14 11:08:47 CEST LOG: terminating any other active server
processes
2011-09-14 11:08:47 CEST WARNING: terminating connection because of crash
of another server process
2011-09-14 11:08:47 CEST DETAIL: The postmaster has commanded this server
process to roll back the current transaction and exit, because another
server process exited abnormally and possibly corrupted shared memory.
2011-09-14 11:08:47 CEST HINT: In a moment you should be able to reconnect
to the database and repeat your command.
2011-09-14 11:08:47 CEST WARNING: terminating connection because of crash
of another server process
2011-09-14 11:08:47 CEST DETAIL: The postmaster has commanded this server
process to roll back the current transaction and exit, because another
server process exited abnormally and possibly corrupted shared memory.
2011-09-14 11:08:47 CEST HINT: In a moment you should be able to reconnect
to the database and repeat your command.
2011-09-14 11:08:47 CEST WARNING: terminating connection because of crash
of another server process
2011-09-14 11:08:47 CEST DETAIL: The postmaster has commanded this server
process to roll back the current transaction and exit, because another
server process exited abnormally and possibly corrupted shared memory.
2011-09-14 11:08:47 CEST HINT: In a moment you should be able to reconnect
to the database and repeat your command.
2011-09-14 11:08:47 CEST LOG: all server processes terminated;
reinitializing
2011-09-14 11:08:57 CEST FATAL: pre-existing shared memory block is still
in use
2011-09-14 11:08:57 CEST HINT: Check if there are any old server processes
still running, and terminate them.
On Wed, Sep 14, 2011 at 03:15, pasman <pasman.p@gmail.com> wrote:
The following bug has been logged online:
Bug reference: 6204
Logged by: pasman
Email address: pasman.p@gmail.com
PostgreSQL version: 9.1.0
Operating system: WinXP sp3
Description: Using plperl functions generate crash
Details:After install postgresql 9.1.0 and Activestate perl 5.14.1 execute:
create function perl_test() returns void as
$$
$$
language plperl
My hunch is the binary distribution of postgres you are using was
compiled with a different version (or brand, maybe strawberry?) of
perl in mind.
I don't know what installer you used, I'd guess the one from
enterprisedb. I looked around for a bit on their website but didn't
see what flavor of perl for windows it wants... :-(
On Sep 15, 2011, at 3:47 AM, Alex Hunsaker wrote:
On Wed, Sep 14, 2011 at 03:15, pasman <pasman.p@gmail.com> wrote:
The following bug has been logged online:
Bug reference: 6204
Logged by: pasman
Email address: pasman.p@gmail.com
PostgreSQL version: 9.1.0
Operating system: WinXP sp3
Description: Using plperl functions generate crash
Details:After install postgresql 9.1.0 and Activestate perl 5.14.1 execute:
create function perl_test() returns void as
$$
$$
language plperlMy hunch is the binary distribution of postgres you are using was
compiled with a different version (or brand, maybe strawberry?) of
perl in mind.I don't know what installer you used, I'd guess the one from
enterprisedb. I looked around for a bit on their website but didn't
see what flavor of perl for windows it wants... :-(
One-Click Installers uses ActiveState Perl 5.14 only.
--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs
--
Regards,
Sachin Srivastava
EnterpriseDB, the Enterprise PostgreSQL company.
Problem solved:
I reinstall postgres from sources, works.
------------
pasman
Import Notes
Resolved by subject fallback
pasman pasmański <pasman.p <at> gmail.com> writes:
Problem solved:
I reinstall postgres from sources, works.
Not all of us can do that. I had the same issue with the EnterpriseDB
PostgreSQL 9.1.1 installer and ActivePerl 5.14.1 on MS Windows XP Professional
2002 SP3. Will try again with the zip file, but I guess the 9.1.1 binaries are
useless to me.
On Oct 10, 2011, at 11:19 PM, Leandro wrote:
pasman pasmański <pasman.p <at> gmail.com> writes:
Problem solved:
I reinstall postgres from sources, works.Not all of us can do that. I had the same issue with the EnterpriseDB
PostgreSQL 9.1.1 installer and ActivePerl 5.14.1 on MS Windows XP Professional
2002 SP3. Will try again with the zip file, but I guess the 9.1.1 binaries are
useless to me.
I am using this : http://downloads.activestate.com/ActivePerl/releases/5.14.1.1401/ActivePerl-5.14.1.1401-MSWin32-x86-294969.msi installer and things just works fine for me..
can you check if any other version of perl is in your path.
--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs
--
Regards,
Sachin Srivastava
EnterpriseDB, the Enterprise PostgreSQL company.
On 10/10/11 11:41 AM, Sachin Srivastava wrote:
I am using this :
http://downloads.activestate.com/ActivePerl/releases/5.14.1.1401/ActivePerl-5.14.1.1401-MSWin32-x86-294969.msi installer
and things just works fine for me..
can you check if any other version of perl is in your path.
whats important is what perl is in the POSTGRES SERVICE's path, not your
desktop users. windows doesn't make this easy to determine.
--
john r pierce N 37, W 122
santa cruz ca mid-left coast
2011/10/10 John R Pierce <pierce@hogranch.com>:
whats important is what perl is in the POSTGRES SERVICE's path, not your
desktop users. windows doesn't make this easy to determine.
In principle I do not have any other perl installation anymore in that
machine, nor in another one exhibiting the same symptoms. But I will
double-check.
I'm running into the same issue. I can "create language plperl;"
successfully, but as soon as I try to create a function (as shown above),
Postgres dies.
Guimaraes - did you find a solution using standard installers?
sachin - have you tried on win7?
pasman - what's the process to install from source?
More detail on my setup...
I'm on Win7.
Postgres 9.1 32-bit:
http://www.enterprisedb.com/products/pgdownload.do#windows (version 9.1.2-1)
Perl 5.14 32-bit, I've tried both:
http://downloads.activestate.com/ActivePerl/releases/5.14.2.1402/ActivePerl-5.14.2.1402-MSWin32-x86-295342.msi
http://downloads.activestate.com/ActivePerl/releases/5.14.1.1401/ActivePerl-5.14.1.1401-MSWin32-x86-294969.msi
Here's what I see in the log file:
2011-12-21 08:10:49 PST LOG: server process (PID 7296) was terminated by
exception 0xC0000005
2011-12-21 08:10:49 PST HINT: See C include file "ntstatus.h" for a
description of the hexadecimal value.
2011-12-21 08:10:49 PST LOG: terminating any other active server processes
2011-12-21 08:10:49 PST WARNING: terminating connection because of crash of
another server process
2011-12-21 08:10:49 PST DETAIL: The postmaster has commanded this server
process to roll back the current transaction and exit, because another
server process exited abnormally and possibly corrupted shared memory.
2011-12-21 08:10:49 PST HINT: In a moment you should be able to reconnect
to the database and repeat your command.
2011-12-21 08:10:49 PST LOG: all server processes terminated;
reinitializing
2011-12-21 08:10:59 PST FATAL: pre-existing shared memory block is still in
use
2011-12-21 08:10:59 PST HINT: Check if there are any old server processes
still running, and terminate them.
--
View this message in context: http://postgresql.1045698.n5.nabble.com/BUG-6204-Using-plperl-functions-generate-crash-tp4802111p5092359.html
Sent from the PostgreSQL - bugs mailing list archive at Nabble.com.
Shahaf wrote
I'm running into the same issue. I can "create language plperl;"
successfully, but as soon as I try to create a function (as shown above),
Postgres dies.Guimaraes - did you find a solution using standard installers?
No, I didn’t. In fact, þanks God I did not have to insist on trying to make
ðe MS Windows aberration work for me.
--
View this message in context: http://postgresql.1045698.n5.nabble.com/BUG-6204-Using-plperl-functions-generate-crash-tp4802111p5092951.html
Sent from the PostgreSQL - bugs mailing list archive at Nabble.com.
I'm running into the same issue here.
After install postgresql 9.1.2 and Activestate perl 5.14.2 execute:
create function perl_test() returns void as
$$
$$
language plperl
Generates server crash.
PostgreSQL version string: PostgreSQL 9.1.2, compiled by Visual C++ build
1500, 32 bit - Enterprise DB download
ActiveState version string: This is perl 5, version 14, subversion 2
(v5.14.2) built for MSWin32-x86-multi-thread
Is there a recommended way to solve this issue, has it been fixed in a later
release?
Simon Willett
--
View this message in context: http://postgresql.1045698.n5.nabble.com/BUG-6204-Using-plperl-functions-generate-crash-tp4802111p5629612.html
Sent from the PostgreSQL - bugs mailing list archive at Nabble.com.
On Tue, Apr 10, 2012 at 7:01 AM, Simon Willett <simonw@gbitsystems.co.uk> wrote:
I'm running into the same issue here.
After install postgresql 9.1.2 and Activestate perl 5.14.2 execute:
create function perl_test() returns void as
$$
$$
language plperlGenerates server crash.
PostgreSQL version string: PostgreSQL 9.1.2, compiled by Visual C++ build
1500, 32 bit - Enterprise DB download
ActiveState version string: This is perl 5, version 14, subversion 2
(v5.14.2) built for MSWin32-x86-multi-threadIs there a recommended way to solve this issue, has it been fixed in a later
release?
The previous discussion seems to indicate that it's caused by using
the wrong version of Perl.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
I began testing PostgreSQL 9.1.x last week, and came across this issue.
Repeatable under the following scenarios (all 32-bit)
1. Windows XP SP3 with latest updates.
2. Windows 7 SP1 with latest updates.
3. Any flavor of Perl 5.1.4.x (I've tried strawberry-perl-5.14.2.1-32bit,
ActivePerl-5.14.2.1402-MSWin32-x86-295342, and compiled my own for 5.14.0,
5.14.1, and 5.14.2)
4. postgresql-9.1.0-windows, postgresql-9.1.1-windows,
postgresql-9.1.2-windows, and postgresql-9.1.3-windows from the one-click
installers.
5. Compiled postgresql-9.1.3 from source using Windows Platform SDK 7.0.
But here is what will work:
1. Compile postgresql-9.1.3 using mingw32
2. Replace only the plperl.dll the official binaries supply with the
plperl.dll you get from the mingw32 compile
3. Then the test which started this bug discussion works.
This makes me think there is an incompatibility in some environments related
to plperl. I thought maybe it was the version of msvcr90.dll since the
mingw32 compile doesn't link with it. I've got four versions of it on my XP
test box, and have put each version of that dll in my various install
subdirectories (perl\bin, perl\lib, pgsql\bin, pgsql\lib), and none of them
make a difference (assuming it is seeing them "first").
My MSVCR90.DLL versions (size)
9.0.21022.8 (655,872 bytes)
9.0.30729.1 (655,872 bytes)
9.0.30729.4148 (653,120 bytes)
9.0.30729.6161 (653,136 bytes)
If it is an environment issue of some kind it would be interesting to know
what locales people have where it works versus where it doesn't. I'm using
the standard ones that the PostgreSQL one-click installer defaults to.
I'd be glad to post the plperl.dll (160,324 bytes) that works for me if
there is a proper place for this kind of thing. Or just compile it from
source yourself using the mingw instructions at
http://www.postgresql.org/docs/9.1/static/installation-platform-notes.html#INSTALLATION-NOTES-MINGW
...jack
--
View this message in context: http://postgresql.1045698.n5.nabble.com/BUG-6204-Using-plperl-functions-generate-crash-tp4802111p5651759.html
Sent from the PostgreSQL - bugs mailing list archive at Nabble.com.
ljwilson wrote
But here is what will work:
1. Compile postgresql-9.1.3 using mingw32
2. Replace only the plperl.dll the official binaries supply with the
plperl.dll you get from the mingw32 compile
3. Then the test which started this bug discussion works.
This is really good news.
Thank you.
.... Simon
--
View this message in context: http://postgresql.1045698.n5.nabble.com/BUG-6204-Using-plperl-functions-generate-crash-tp4802111p5652595.html
Sent from the PostgreSQL - bugs mailing list archive at Nabble.com.
Follow-up:
Putting in debug stubs for the plperl.c source from PostgreSQL 9.1.3 I've
determined the crash mentioned in the first post of this thread occurs at
line 905:
if (SvTRUE(ERRSV))
Googling I found this:
http://www.perlmonks.org/?node_id=870835
Where the last post in the thread talks about mismatches between MSVCR80.dll
and MSVCRT.DLL causing the same crash in Perl 5.10. I think we have the same
issue here between ActiveState Perl using MSVCRT.DLL and PLPERL.DLL compiled
with the MS compilers using MSVCR90.DLL.
So another solution which I've tested (and it works for me) is to compile
Perl 5.14.2 from source using the Windows Platform SDK 7.0 (same one I used
to compile PostgreSQL 9.1.3 in my previous post). To do that I changed the
CCTYPE = MSVC90 in <perl source directory>\win32\Makefile. This forces Perl
to use the same MSVCR90.DLL that PLPERL.DLL (and PostgreSQL itself) uses.
What I still don't understand is why ActiveState 5.14.1 and 5.14.2 work for
some people with the official Postgresql 9.1.x binaries and not others.
Since I distribute my own compiled version of Perl anyway, for PostgreSQL
9.1.x I will simply compile Perl with the Windows Platform SDK 7.0 instead
of mingw32.
--
View this message in context: http://postgresql.1045698.n5.nabble.com/BUG-6204-Using-plperl-functions-generate-crash-tp4802111p5654505.html
Sent from the PostgreSQL - bugs mailing list archive at Nabble.com.