[Bug 79] New: A race with select() in SIGCHLD handling causes hangs occasionally
bugzilla-daemon at mindrot.org
bugzilla-daemon at mindrot.org
Sat Jan 26 04:30:24 EST 2002
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.
More information about the openssh-unix-dev
mailing list