On 13/09/2012 19:48, Tom Lane wrote:
Marko Tiikkaja <pgm...@joh.to> writes:
On 9/12/12 1:50 AM, Tom Lane wrote:
Hm, I wonder if it's Ubuntu-specific?  What Perl version is that exactly?

We've reproduced it on both 5.14.2 and 5.16.1.

What happens is that free_plperl_function() for some reason gets called
with the prodesc of func0003.  Later on, func0003 wants to get rid of
his prodesc and I get a crash.  What's weird about this is that
current_call_data->prodesc actually points to the correct prodesc (the
one of func0005), but still somehow something different is passed to
free_plperl_function().

The only theory that comes to mind is that current_call_data is somehow
getting aliased (free'd and realloc'd).  I don't see how that could
happen, but it occurs to me that it's kinda dumb to be palloc'ing it
in the first place.  Its lifetime is exactly that of the call, so it
would be simpler and more foolproof to make it a local variable.

I've pushed a HEAD patch to do that, and I wonder if you could check
whether it changes anything.

Will look at that tomorrow, thanks.


Regards,
Marko Tiikkaja


--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to