Dave Page <dpage@pgadmin.org> writes:
> CREATE LANGUAGE plperl; causes a backend crash on 8.4 with ActivePerl
> 5.10.0 (running on XP Pro). I'm testing this on beta 2 which I just
> rolled, however I believe this is probably the same issue that Kevin
> Field was reporting here:
> http://archives.postgresql.org/message-id/200904171407.n3HE7uri070869@wwwmaster.postgresql.org.
> For info, 0xC0000005 is a pretty general access violation error.
> I couldn't get much out of the server in the way of logs:
> 2009-05-15 11:40:29 BST DEBUG: shmem_exit(-1)
> 2009-05-15 11:40:29 BST STATEMENT: create language plperl;
> 2009-05-15 11:40:29 BST DEBUG: proc_exit(-1)
> 2009-05-15 11:40:29 BST STATEMENT: create language plperl;
> 2009-05-15 11:40:29 BST DEBUG: reaping dead processes
> 2009-05-15 11:40:29 BST DEBUG: server process (PID 3432) was
> terminated by exception 0xC0000005
Ho, that's pretty curious. The first two messages are the trace of the
atexit hook I recently installed, which means something called exit()
or the moral equivalent thereof. I wouldn't really expect that to
happen in a crash situation ... is Windows dumb enough to try to run
the atexit hooks of a crashed process?
> 2009-05-15 11:40:29 BST DEBUG: sending SIGQUIT to process 2920
> 2009-05-15 11:40:29 BST DEBUG: shmem_exit(-1)
> 2009-05-15 11:40:29 BST DEBUG: proc_exit(-1)
... and this proves I broke something :-( ... quickdie() is deliberately
not supposed to run through the proc_exit stuff. Will fix. That's not
related to your Perl problem though.
regards, tom lane