Signal handler not executed

Ernie Coskrey Ernie.Coskrey@steeleye.com
Thu Aug 9 17:36:00 GMT 2007


> -----Original Message-----
> From: cygwin-patches-owner@cygwin.com 
> [mailto:cygwin-patches-owner@cygwin.com] On Behalf Of 
> Christopher Faylor
> Sent: Thursday, August 09, 2007 1:19 PM
> To: cygwin-patches@cygwin.com
> Subject: Re: Signal handler not executed
> 
> On Thu, Aug 09, 2007 at 01:09:48PM -0400, Ernie Coskrey wrote:
> >There's a very small window of vulnerability in _sigbe, 
> which can lead 
> >to signal handlers not being executed.  In _sigbe, the 
> _cygtls lock is 
> >released before incyg is decremented.  If setup_handler acquires the 
> >lock just after _sigbe releases it, but before incyg is decremented, 
> >setup_handler will mistakenly believe that the thread is in Cygwin 
> >code, and will set up the interrupt using the tls stack.
> > 
> >_sigbe should decrement incyg before releasing the lock.
> 
> I'll apply this but are you saying that this actually fixes 
> your problem or that you think it fixes your problem?
> 
> Thanks for the patch.
> 
> cgf
> 

It's hard to say definitively that it fixes the problem, since the
problem is so hard to reproduce.  I've been running stress scripts for
three days on six different systems, and haven't seen it occur.  But I
feel pretty sure that this fixes it - it certainly matches the symptoms
we see when we do happen to encounter the problem.

Ernie



More information about the Cygwin-patches mailing list