Re: BUG #7516: PL/Perl crash - Mailing list pgsql-bugs

From Marko Tiikkaja
Subject Re: BUG #7516: PL/Perl crash
Date
Msg-id 505229E8.9070507@joh.to
Whole thread Raw
In response to Re: BUG #7516: PL/Perl crash  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: BUG #7516: PL/Perl crash  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
On 13/09/2012 19:48, Tom Lane wrote:
> Marko Tiikkaja <pgmail@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

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: BUG #7516: PL/Perl crash
Next
From: Dave Page
Date:
Subject: Re: initdb.exe changes --locale option