bugzilla-daemon at mindrot.org
2002-Jan-25 17:30 UTC
[Bug 79] New: A race with select() in SIGCHLD handling causes hangs occasionally
http://bugzilla.mindrot.org/show_bug.cgi?id=79
Summary: A race with select() in SIGCHLD handling causes hangs
occasionally
Product: Portable OpenSSH
Version: 3.0.2p1
Platform: All
URL: http://marc.theaimsgroup.com/?l=openssh-unix-
dev&m=100454673601558&w=2
OS/Version: All
Status: NEW
Severity: major
Priority: P2
Component: sshd
AssignedTo: openssh-unix-dev at mindrot.org
ReportedBy: Nicolas.Williams at ubsw.com
CC: openssh-unix-dev at mindrot.org
There's a race condition in OpenSSH (all versions - haven't checked
-current)
such that if SIGCHLD arrives after the check for child_terminated, but before
entering select() (with no timeout) AND if the session's pty/pipes have
received EOF before SIGCHLD is handled, then sshd will block in select()
forever, while the client hangs waiting for the session-exit message that
will never arrive (because sshd will never send it, because it's blocking
in select()).
Markus Friedl posted a fix for it (see URL associated with this bug report).
It works. It should be applied.
Thanks.
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
You are on the CC list for the bug, or are watching someone who is.
