Re: PL/R Median Busts Commit (Postgres 9.1.6 + plr 8.3.0.13 on Ubuntu 12.10 64 bit)

From: Mark Kirkwood <mark(dot)kirkwood(at)catalyst(dot)net(dot)nz>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-bugs(at)postgresql(dot)org, Joe Conway <mail(at)joeconway(dot)com>
Subject: Re: PL/R Median Busts Commit (Postgres 9.1.6 + plr 8.3.0.13 on Ubuntu 12.10 64 bit)
Date: 2013-01-28 23:57:55
Message-ID: 51071083.6010801@catalyst.net.nz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On 29/01/13 10:29, Mark Kirkwood wrote:
> On 25/01/13 13:56, Mark Kirkwood wrote:
>> On 25/01/13 13:49, Tom Lane wrote:
>>> Mark Kirkwood <mark(dot)kirkwood(at)catalyst(dot)net(dot)nz> writes:
>>>> On 25/01/13 13:06, Tom Lane wrote:
>>>>> Unless libR can be coerced into not screwing up our signal handlers,
>>>>> I'd say that PL/R is broken beyond repair. That would be
>>>>> unfortunate.
>>>
>>>> It looks like Joe has run into something similar with libR stealing
>>>> SIGINT, he reinstalls it. A simple patch along the same lines for
>>>> SIGUSR1 (attached) seems to fix the issue.
>>>
>>> This certainly is not good enough, for either signal. What happens if
>>> the signal arrives while libR still has control? These things being
>>> asynchronous with respect to the receiving backend, we certainly can't
>>> assume that that won't happen.
>>>
>>> Why does libR think it should be messing with these handlers in the
>>> first place?
>>>
>>>
>>
>> Agreed - I will see if I can work out why.
>>
>
>
> Looking at the R source (which reminds me of Postgres, nice, clear
> code...), I saw quite a bit of code involving signal handlers - and
> nothing along the lines of "don't set them up if you are in embedded
> mode". So clearly more investigation is needed, and we really need to
> take this up on the R mailing list I think. Joe - is this something
> you would like to do? I am happy do it, but my knowledge of R is
> measured in hours...
>
>

Like a dog with a bone - sometimes it's hard to let go... given the
quite readable nature of the R source I managed to find what I *think*
is the "don't do R signals switch" (which I'd obviously missed before).
Making use of this seems to fix the original bug - and possibly the
SIGINT stealing too.

Patch attached to set the variable (R_SignalHandlers = 0), and remove
the SIGINT workaround.

Cheers

Mark

Attachment Content-Type Size
plr.c-no-r-sig-handlers.diff text/x-patch 855 bytes

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Joe Conway 2013-01-29 00:21:43 Re: PL/R Median Busts Commit (Postgres 9.1.6 + plr 8.3.0.13 on Ubuntu 12.10 64 bit)
Previous Message Alvaro Herrera 2013-01-28 22:37:24 Re: Re: BUG #7748: "drop owned by" fails with error message: "unrecognized object class: 1262"