Cygwin 3.4.3 and 3.5.0... hangs in make, top, procps, ls /proc/PID/...

Corinna Vinschen corinna-cygwin@cygwin.com
Tue Jan 10 10:57:26 GMT 2023


On Jan 10 19:01, Takashi Yano via Cygwin wrote:
> On Mon, 9 Jan 2023 18:13:26 +0100
> Corinna Vinschen wrote:
> > If q->sigtls is NULL, the signal is nevertheless waiting for being
> > handled.  It's just not directed at a specific thread.  Beats me, why
> > this didn't occur in my testing.  The process signal info should contain
> > the process-wide mask of pending signals as well, obviously, so the
> > following patch should do the right thing:
> > 
> > diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc
> > index ce36c8be37fb..86e4e607ab7e 100644
> > --- a/winsup/cygwin/sigproc.cc
> > +++ b/winsup/cygwin/sigproc.cc
> > @@ -1375,7 +1375,8 @@ wait_sig (VOID *)
> >  	    *pack.mask = 0;
> >  	    while ((q = q->next))
> >  	      {
> > -		if (q->sigtls->sigmask & (bit = SIGTOMASK (q->si.si_signo)))
> > +		_cygtls *sigtls = q->sigtls ?: _main_tls;
> > +		if (sigtls->sigmask & (bit = SIGTOMASK (q->si.si_signo)))
> >  		  {
> >  		    tl_entry = cygheap->find_tls (q->si.si_signo, issig_wait);
> >  		    if (tl_entry)
> > 
> > Can you confirm?
> 
> I confirmed that your patch fixes the issue.
> 
> This issue can be easily reproduced in my environment by:
> 1) Open two mintty windows.
> 2) Run "while true; do procps; done" in one mintty.
> 3) Build cygwin1.dll in another window.
> Build hangs in a short time and response of procps slows down.

Great.  I pushed the patch.  The next test relaese
cygwin-3.5.0-0.76.g7c14e5a10add contains this patch.


Thanks,
Corinna


More information about the Cygwin mailing list