Subject: Re: zsh: command not found => hangs
From: "Pavel Tsekov" <[email-masked]>
To: [email-masked]
Cc: [email-masked]
Date: Sun, 28 Aug 2005 22:17:56 +0200 (MEST)

> Well, I just tried, and I can reproduce a hang with this:
> 
>   while :; do quer; done >& /dev/null
> 
> It happens with 1.5.18 and the current snapshot.  I didn't check the
> 1.5.18 version since I was too lazy to regenerate my copy with symbols
> but the snapshot version "hangs" in sigsuspend, apparently waiting for a
> SIGCHLD.  Since the process has no children, it is going to hang
> forever.
> 
> So, this case, at least, is not a regression and it is not clear that it
> is a cygwin problem.

This doesn't seem to be the same problem . I see what the original reporter
saw. Even the strace is identical. The hang occurs after SIGCHLD is
processed in the signal handler. I can prove this by using the strace output
and the zsh source. The hang occurs because of this call:

(gdb)
845           res = WaitForMultipleObjects (num, wait_objects, FALSE,
timeout);

in cancelable_wait(). The signal handler returns to the wrong place (?) and
ends up in WaitForMultipleObjects() instead after the sigsuspend() call in
zsh. I'll see what I can find out. If I find out something which makes more
sense that what I currently know I'll post.

-- 
Lust, ein paar Euro nebenbei zu verdienen? Ohne Kosten, ohne Risiko!
Satte Provisionen für GMX Partner: http://www.gmx.net/de/go/partner

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/