[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