This is the mail archive of the cygwin-patches mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Signal handler not executed


> -----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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]