Re: PG signal handler and non-reentrant malloc/free calls

From: Nikhil Sontakke <nikhil(dot)sontakke(at)enterprisedb(dot)com>
To: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: PG signal handler and non-reentrant malloc/free calls
Date: 2011-03-01 14:40:36
Message-ID: AANLkTimMRj0DsQzWZGUm97XjHn-y19C+0GsCy_qLGH6E@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Mar 1, 2011 at 10:17 PM, Heikki Linnakangas
<heikki(dot)linnakangas(at)enterprisedb(dot)com> wrote:
> On 01.03.2011 12:50, Nikhil Sontakke wrote:
>>>
>>>> Will try to get the call stack if needed.
>>>
>>> Yes, please.
>>
>> Here is the stack trace:
>
> Hmm, it looks like ImmediateInterruptOK is set, while we're busy running a
> query. How come? Can you debug that? Where does it get set?
>

Ah, this is not exactly an easily reproducible problem :( You gotta be
lucky enough to be able to interrupt inside a malloc call.

But adding hold/resume interrrupts in mcxt.c (not aset.c, since we
want to be agnostic to the underlying layer) should be good enough to
handle this non-re-entrant issue, no?

Regards,
Nikhils

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2011-03-01 15:02:17 Re: Sync Rep v17
Previous Message Heikki Linnakangas 2011-03-01 14:17:23 Re: PG signal handler and non-reentrant malloc/free calls