From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Stefan Kaltenbrunner <stefan(at)kaltenbrunner(dot)cc> |
Cc: | Postgresql Hackers Mailinglist <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: spoonbill vs. -HEAD |
Date: | 2013-04-04 00:18:03 |
Message-ID: | 28691.1365034683@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Stefan Kaltenbrunner <stefan(at)kaltenbrunner(dot)cc> writes:
> On 04/03/2013 12:59 AM, Tom Lane wrote:
>> BTW, on further thought it seems like maybe this is an OpenBSD bug,
>> at least in part: what is evidently happening is that the temporary
>> blockage of SIGINT during the handler persists even after we've
>> longjmp'd back to the main loop. But we're using sigsetjmp(..., 1)
>> to establish that longjmp handler --- so why isn't the original signal
>> mask reinstalled when we return to the main loop?
>>
>> If (your version of) OpenBSD is getting this wrong, it'd explain why
>> we've not seen similar behavior elsewhere.
> hmm trolling the openbsd cvs history brings up this:
> http://www.openbsd.org/cgi-bin/cvsweb/src/sys/arch/sparc64/sparc64/machdep.c?r1=1.143;sortby=date#rev1.143
That's about alternate signal stacks, which we're not using.
I put together a simple test program (attached) and tried it on
spoonbill, and it says that the signal *does* get unblocked when control
returns to the sigsetjmp(...,1). So now I'm really confused. Somehow
the results we're getting in a full-fledged backend do not match up with
the results gotten by this test program ... but why?
regards, tom lane
Attachment | Content-Type | Size |
---|---|---|
sigtest.c | text/plain | 1.9 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Dickson S. Guedes | 2013-04-04 00:27:27 | Re: patch to add \watch to psql |
Previous Message | Will Leinweber | 2013-04-04 00:04:44 | Re: patch to add \watch to psql |