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