[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn+ssh breaks with ControlSocket

From: Vincent Lefevre <vincent+svn_at_vinc17.org>
Date: 2005-11-05 03:49:03 CET

On 2005-11-04 20:21:58 -0500, Daniel Berlin wrote:
> On Fri, 2005-11-04 at 21:52 +0100, Quest wrote:
> > It would seem that svn brutally kills the ssh process it starts, so
> > that ssh client can't remove it's ControlSocket. The dangling
> > controlsocket fools following ssh connections to believe they should
> > use multiplexed sessions, and fails when they can't use the
> > controlsocket.
> >
> > [21:44] svn ls svn+ssh://venerable/mnt/data/svnroot/plonesvnview
> > Enter passphrase for key '/home/quest/.ssh/id_rsa':
> > Control socket connect(/tmp/ctl_quest@windwards.net): Connection refused
> > Enter passphrase for key '/home/quest/.ssh/id_rsa':
> >
> > This would seem to be a misfeature in ssh, but svn really shouldn't be
> > so harsh to its spawned ssh client. Hence I feel this is a bug in svn
> > and am looking for agreement. What say you?
> "
> /* Arrange for the tunnel agent to get a SIGKILL on pool
> * cleanup. This is a little extreme, but the alternatives
> * weren't working out:
> * - Closing the pipes and waiting for the process to die
> * was prone to mysterious hangs which are difficult to
> * diagnose (e.g. svnserve dumps core due to unrelated bug;
> * sshd goes into zombie state; ssh connection is never
> * closed; ssh never terminates).
> * - Killing the tunnel agent with SIGTERM leads to unsightly
> * stderr output from ssh.
> */
> apr_pool_note_subprocess(pool, proc, APR_KILL_ALWAYS);
> "

There could be a solution concerning the SIGTERM: capture the
stderr output from ssh with a pipe and send it back to stderr
(the one of the client) until a SIGTERM is sent. Once SIGTERM
has been sent, the stderr output from ssh should be ignored.
I don't know if this can be done in practice...

But anyway, the user shouldn't configure ssh to make svn open
a master ssh connection, as such a connection must remain open
until the user no longer needs ssh connections to the same host.

Vincent Lefèvre <vincent_at_vinc17.org> - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / SPACES project at LORIA
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Sat Nov 5 03:50:56 2005

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.