Re: BUG #7516: PL/Perl crash

From: Marko Tiikkaja <pgmail(at)joh(dot)to>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #7516: PL/Perl crash
Date: 2012-09-13 18:46:00
Message-ID: 505229E8.9070507@joh.to
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On 13/09/2012 19:48, Tom Lane wrote:
> Marko Tiikkaja <pgmail(at)joh(dot)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

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message te 2012-09-13 19:17:05 how to proccess record returning null
Previous Message Tom Lane 2012-09-13 17:48:04 Re: BUG #7516: PL/Perl crash