Peter Eisentraut (peter_e@gmx.net) wrote:
> Travis Bauer writes:
>
> I don't have one, but the requirement to recompile Perl is actually a
> myth for most platforms. You could alter the Makefile.PL for PL/Perl and
> remove the shared library check and see if it works.
>
It did compile and install plper.so in the lib directory. But when I
try to create a function, it complains that:
ERROR: Can't find function plperl_call_handler in file
/mypath/perl5/5.6.0/sun4-solaris/CORE/libperl.so
>
> Backtraces can be helpful.
> --
The postmaster restarts itself and does not seem to be leaving
any core file behind for gdb to study.
////////////////////////////////////////////////////////////////////////
Using my custom compile of perl:
Here the error that psql gets (includes script):
swell:bin$ createdb trbauer
CREATE DATABASE
swell:bin$ psql
Welcome to psql, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help on internal slash commands
\g or terminate with semicolon to execute query
\q to quit
trbauer=# CREATE FUNCTION "plperl_call_handler" () RETURNS opaque AS
'/apath/postgresql-7.1.2/lib/plperl.so', 'plperl_call_handler' LANGUAGE 'C';
CREATE
trbauer=# CREATE TRUSTED PROCEDURAL LANGUAGE 'plperl' HANDLER
"plperl_call_handler" LANCOMPILER 'PL/Perl';
CREATE
trbauer=# CREATE FUNCTION "cosine_sim" (text,text) RETURNS float as
'return 1.0;' LANGUAGE 'plperl';
CREATE
trbauer=# select cosine_sim('aword', 'aword');
pqReadData() -- backend closed the channel unexpectedly.
This probably means the backend terminated abnormally
before or while processing the request.
The connection to the server was lost. Attempting reset: NOTICE: Message
from PostgreSQL backend:
The Postmaster has informed me that some other backend died abnormally
and possibly corrupted shared memory.
I have rolled back the current transaction and am
going to terminate your database system connection and exit.
Please reconnect to the database system and repeat your query.
Failed.
!#
/////////////////////////////////////////////////////////////////////////////
Here is what the postmaster spits out:
swell:trbauer$ pg_ctl start -o "-i"
postmaster successfully started
swell:trbauer$ DEBUG: database system was shut down at 2001-08-10 12:36:49 EST
DEBUG: CheckPoint record at (0, 9990872)
DEBUG: Redo record at (0, 9990872); Undo record at (0, 0); Shutdown TRUE
DEBUG: NextTransactionId: 1675; NextOid: 85746
DEBUG: database system is in production state
Server process (pid 1506) exited with status 139 at Fri Aug 10 12:41:00 2001
Terminating any active server processes...
NOTICE: Message from PostgreSQL backend:
The Postmaster has informed me that some other backend died abnormally
and possibly corrupted shared memory.
I have rolled back the current transaction and am
going to terminate your database system connection and exit.
Please reconnect to the database system and repeat your query.
Server processes were terminated at Fri Aug 10 12:41:00 2001
Reinitializing shared memory and semaphores
DEBUG: database system was interrupted at 2001-08-10 12:37:14 EST
DEBUG: CheckPoint record at (0, 9990872)
DEBUG: Redo record at (0, 9990872); Undo record at (0, 0); Shutdown TRUE
DEBUG: NextTransactionId: 1675; NextOid: 85746
DEBUG: database system was not properly shut down; automatic recovery in
progress...
DEBUG: redo starts at (0, 9990936)
DEBUG: ReadRecord: record with zero len at (0, 10074184)
DEBUG: redo done at (0, 10074144)
DEBUG: database system is in production state
How do I get the postmaster to leave behind a core file for gdb to
analyze? Is the above helpful at all? I do have plperl working on
an earlier version of solaris.
Thanks,
--
----------------------------------------------------------------
Travis Bauer | CS Grad Student | IU |www.cs.indiana.edu/~trbauer
----------------------------------------------------------------