TTY write deadlock

Christopher Faylor cgf-use-the-mailinglist-please@cygwin.com
Sun Apr 5 09:31:00 GMT 2009


On Sat, Apr 04, 2009 at 03:11:06PM -0700, Josh Stone wrote:
>Hi,
>
>I've discovered a deadlock in Cygwin which is pretty easy to
>reproduce.?? This seems to happen on all of the console windows I can
>find, except for running in a normal cmd.exe.  All of these are
>affected though: xterm, rxvt, mintty, puttycyg+cthelper, and putty
>localhost -> cygwin sshd.
>
>To reproduce, run a command that produces a lot of output -- "man -P
>cat bash" works well.  While it's thinking about formatting that, just
>start mashing the keyboard.  When it starts writing out the manpage
>while you're still mashing keys, it will lock up (100% of the time for
>me).  You can kill the (Schr??dinger???s) cat and life will be ok again.
>
>I did some debugging and found that the terminal was stuck on
>acquire_output_mutex in fhandler_pty_master::doecho.  The cat process
>had fhandler_tty_slave::write in its backtrace, so it was holding the
>write mutex.  The cat won't release the mutex until its data is read,
>but the terminal won't read until after it acquires the mutex and
>finishes doecho.
>
>This is on cygwin-1.7.0-45, but I can reproduce it on the 1.5 series
>too.  And since it happens on so many terminals and even sshd, I don't
>think we can say it's the application's fault.  I can't reproduce it
>with a command like "man bash | cat" though, probably because the
>difference in line buffering makes the race harder to hit.
>
>I'm happy to help more with debugging, or I'll even try to write a
>patch if someone can suggest a good way to resolve this deadlock...

I can duplicate this.  I'll look into fixing it ASAP.

cgf

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



More information about the Cygwin mailing list