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
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 |