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.