Subject: Re: [PATCH] remote-bzr: reuse bzrlib transports when possible

From: Richard Hansen <[email-masked]>
Date: Sat, 07 Sep 2013 20:02:15 -0400

On 2013-09-07 19:58, Richard Hansen wrote:
> Pass a list of open bzrlib.transport.Transport objects to each bzrlib
> function that might create a transport.  This enables bzrlib to reuse
> existing transports when possible, avoiding multiple concurrent
> connections to the same remote server.
> 
> If the remote server is accessed via ssh, this fixes a couple of
> problems:
>   * If the user does not have keys loaded into an ssh agent, the user
>     may be prompted for a password multiple times.
>   * If the user is using OpenSSH and the ControlMaster setting is set
>     to auto, git-remote-bzr might hang.  This is because bzrlib closes
>     the multiple ssh sessions in an undefined order and might try to
>     close the master ssh session before the other sessions.  The
>     master ssh process will not exit until the other sessions have
>     exited, causing a deadlock.  (The ssh sessions are closed in an
>     undefined order because bzrlib relies on the Python garbage
>     collector to trigger ssh session termination.)

I forgot to mention:  I didn't add a Signed-off-by line because there is
no mention of a copyright license at the top of git-remote-bzr.

-Richard