Received: from maia.hub.org (unknown [200.46.204.183]) by mail.postgresql.org (Postfix) with ESMTP id CE4F4634680 for ; Wed, 3 Jun 2009 20:41:01 -0300 (ADT) Received: from mail.postgresql.org ([200.46.204.86]) by maia.hub.org (mx1.hub.org [200.46.204.183]) (amavisd-maia, port 10024) with ESMTP id 00464-01 for ; Wed, 3 Jun 2009 20:41:00 -0300 (ADT) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from alexis.jtlnet.com (alexis.jtlnet.com [69.36.9.81]) by mail.postgresql.org (Postfix) with ESMTP id 6579D633660 for ; Wed, 3 Jun 2009 20:41:00 -0300 (ADT) Received: from [192.168.10.103] (cpe-075-177-154-027.nc.res.rr.com [::ffff:75.177.154.27]) (TLS: TLSv1/SSLv3,256bits,AES256-SHA) by alexis.jtlnet.com with esmtp; Wed, 03 Jun 2009 19:40:47 -0400 id 0008075A.4A2709FF.00003C1A Message-ID: <4A270A06.1010507@dunslane.net> Date: Wed, 03 Jun 2009 19:40:54 -0400 From: Andrew Dunstan User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.8.0.12) Gecko/20071019 Fedora/1.0.9-3.fc6 pango-text SeaMonkey/1.0.9 Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=_alexis.jtlnet.com-15386-1244072447-0001-2" To: Dave Page CC: Josh Berkus , PostgreSQL-development Subject: Re: It's June 1; do you know where your release is? References: <19107.1243873940@sss.pgh.pa.us> <603c8f070906012050p6ccd62d3v13d3e0f887fe7c90@mail.gmail.com> <15765.1243965376@sss.pgh.pa.us> <4A25C32F.30203@agliodbs.com> <4A25C9A9.5010303@dunslane.net> <4A25D91B.5080401@dunslane.net> <4A26FF38.8090308@dunslane.net> <937d27e10906031610g341525e5j9414d8af3d8f293c@mail.gmail.com> In-Reply-To: <937d27e10906031610g341525e5j9414d8af3d8f293c@mail.gmail.com> X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=0 tagged_above=0 required=5 tests=none X-Spam-Level: X-Archive-Number: 200906/381 X-Sequence-Number: 139436 This is a MIME-formatted message. If you see this text it means that your E-mail software does not support MIME-formatted messages. --=_alexis.jtlnet.com-15386-1244072447-0001-2 Content-Type: text/plain; charset=iso-8859-1; format=flowed Content-Transfer-Encoding: 7bit Dave Page wrote: > On Wed, Jun 3, 2009 at 11:54 PM, Andrew Dunstan wrote: > >> Update: the problem is apparently occurring during the call to perl_parse() >> in plperl_init_interp(). >> >> > > Not sure if you saw the previous thread on this, but here's a > backtrace that gives some more detail: > http://archives.postgresql.org/pgsql-bugs/2009-05/msg00198.php > Well, that's not too easy to read, but anyway, I got to the bottom of it. Turns out there's a change in the Perl embedding API that nobody noticed. The attached patch worked for me on Windows. We'll need something like this on other platforms I believe. I see via Google that Debian is objecting to packages that call perl_parse without calling PERL_SYS_INIT (or PERL_SYS_INIT3). I'm even wondering if we should backpatch it. Of course, that leaves the issue of the library name to be fixed, but sufficient unto the day ... cheers andrew --=_alexis.jtlnet.com-15386-1244072447-0001-2 Content-Type: text/x-patch; name="plperl-sysinit.patch"; charset=iso-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="plperl-sysinit.patch" Index: plperl.c =================================================================== RCS file: /cvsroot/pgsql/src/pl/plperl/plperl.c,v retrieving revision 1.146 diff -c -r1.146 plperl.c *** plperl.c 20 Feb 2009 10:39:19 -0000 1.146 --- plperl.c 3 Jun 2009 23:34:30 -0000 *************** *** 399,404 **** --- 399,406 ---- "", "-e", PERLBOOT }; + int nargs = 3; + #ifdef WIN32 /* *************** *** 447,454 **** elog(ERROR, "could not allocate Perl interpreter"); perl_construct(plperl_held_interp); perl_parse(plperl_held_interp, plperl_init_shared_libs, ! 3, embedding, NULL); perl_run(plperl_held_interp); if (interp_state == INTERP_NONE) --- 449,459 ---- elog(ERROR, "could not allocate Perl interpreter"); perl_construct(plperl_held_interp); + #ifdef PERL_SYS_INIT + PERL_SYS_INIT(&nargs, (char ***) &embedding); + #endif; perl_parse(plperl_held_interp, plperl_init_shared_libs, ! nargs, embedding, NULL); perl_run(plperl_held_interp); if (interp_state == INTERP_NONE) --=_alexis.jtlnet.com-15386-1244072447-0001-2--