I recently enabled
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?