Final(?) changes committed
Iain Morgan
imorgan at nas.nasa.gov
Tue Aug 17 06:54:10 EST 2010
On Mon, Aug 16, 2010 at 11:08:13 -0500, Damien Miller wrote:
> Hi,
>
> In addition to the strptime change that Darren has just committed to
> fix Irix, I have committed a change to ssh(1) that affects all platforms:
>
> > - djm at cvs.openbsd.org 2010/08/12 21:49:44
> > [ssh.c]
> > close any extra file descriptors inherited from parent at start and
> > reopen stdin/stdout to /dev/null when forking for ControlPersist.
> >
> > prevents tools that fork and run a captive ssh for communication from
> > failing to exit when the ssh completes while they wait for these fds to
> > close. The inherited fds may persist arbitrarily long if a background
> > mux master has been started by ControlPersist. cvs and scp were effected
> > by this.
>
> The problem that this fixed was tools like cvs(1) and scp(1) hanging
> if they were the first connection to a server with ControlPersist active.
> They would start a background ssh(1) to act as a mux master, and the
> grandparent process (cvs or scp) would hang after the original parent
> ssh(1) process had exited, waiting for the mux master process to close
> its fds.
>
> This is a low-risk change in my opinion, but I'd appreciate any tests that
> you are willing to run. A snapshot with the strptime and ssh(1) change is
> available at:
>
> http://www.mindrot.org/openssh_snap/openssh-SNAP-20100817.tar.gz
>
> Thanks,
> Damien
> _______________________________________________
The 20100817 snapshot builds and tests OK on the following platforms:
RHEL 5/x86_64
SLES 10/x86_64
SLES 10/Itanium
Solaris 9/SPARC
Mac OS X 10.5.8/Intel
As before I had to modify regress/login-timeout.sh on the RHEL 5 system.
It seems to tickle a race condition most of the time. As before,
replacing "$SUDO kill `$SUDO cat $PIDFILE`" with "cleanup" seems to fix
the issue. (Thus far, I haven't needed to modify regress/reexec.sh, but
in principle it could suffer from the same race condition.)
I should also note some typos in regress/README.regress. The file refers
to TEST_SSH_SSH_CONFOTPS and TEST_SSH_SSHD_CONFOTPS, whereas the scripts
use TEST_SSH_SSH{,D}_CONFOPTS.
--
Iain Morgan
More information about the openssh-unix-dev
mailing list