SSH freezing with ControlPersist on

6

1

I recently enabled ControlMaster and ControlPersist in SSH so that it reuses and multiplexes connections for speed. The config is:

ControlMaster auto
ControlPath /tmp/ssh_mux_%h_%p_%r
ControlPersist 4h

If I turn ControlPersist off, everything is fine. With it on, though, the first git/hg connection will always freeze. SSHing in normally (in a shell) works fine, ever for the first time, but git/hg freezes. If I stop it with ctrl+C and then retry, it will use the already-established connection to multiplex and it will be fast, but it won't do it the first time. Turning LogLevel up to 11 gives me:

remote: debug2: fd 4 setting O_NONBLOCK
remote: debug1: forking to background
remote: debug1: Entering interactive session.
remote: debug2: set_control_persist_exit_time: schedule exit in 14400 seconds
remote: debug1: multiplexing control connection
remote: debug2: fd 5 setting O_NONBLOCK

at which point, it just freezes and stays there for ever. What's wrong?

Stavros Korokithakis

Posted 2013-09-20T15:04:27.680

Reputation: 283

I wasn't able to reproduce this on Fedora 19. What versions are you using? – Cristian Ciupitu – 2013-10-21T18:53:55.830

I'm using Ubuntu 13.04. This happens on both my PCs using it. – Stavros Korokithakis – 2013-10-21T23:09:42.623

Answers

2

I'm seeing the same behavior, and I think it is due to this OpenSSH bug: https://bugzilla.mindrot.org/show_bug.cgi?id=1988 (ControlPersist causes stderr to be left open until the master connection times out)

Hopefully it will be fixed eventually.

Soulman

Posted 2013-09-20T15:04:27.680

Reputation: 121