Re: BUG #7516: PL/Perl crash

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

Marko Tiikkaja <pgmail(at)joh(dot)to> writes:
> On 9/13/12 11:58 PM, Tom Lane wrote:
>> And on still further investigation, the patch I just applied to HEAD
>> seems to make it go away too. Bizarre as can be. If that holds up for
>> you, I think back-patching that change is less ugly than making the
>> variable non-static.

> It does, indeed. I can't reproduce the bug on my end with that patch
> applied.

Here's what Jakub Jelinek wrote in the RH bugzilla:

> That is a glibc bug. While in setjmp.h the __sigsetjmp prototype is properly
> marked as non-leaf:
> extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask)
> __THROWNL;
> in pthread.h it is incorrectly marked as leaf:
> extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) __THROW;
> When pthread.h is fixed, the testcase works properly.

So that explains why including perl.h is relevant. Would you like to
try modifying your copy of pthread.h to confirm it's the same situation
on Ubuntu?

It's probably pure luck that my no-palloc patch dodges the problem, but
anyway it seems like a good enough work-around until the glibc issue is
fixed. I'll go ahead and back-patch that.

regards, tom lane

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Dave Page 2012-09-14 14:45:51 Re: initdb.exe changes --locale option
Previous Message Tom Lane 2012-09-14 14:09:47 Re: initdb.exe changes --locale option