[Bug 2707] New: mux_client_hello_exchange: write packet: Broken pipe when timeout is about to expire

bugzilla-daemon at bugzilla.mindrot.org bugzilla-daemon at bugzilla.mindrot.org
Sat Apr 8 02:25:10 AEST 2017


https://bugzilla.mindrot.org/show_bug.cgi?id=2707

            Bug ID: 2707
           Summary: mux_client_hello_exchange: write packet: Broken pipe
                    when timeout is about to expire
           Product: Portable OpenSSH
           Version: 7.4p1
          Hardware: Other
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P5
         Component: ssh
          Assignee: unassigned-bugs at mindrot.org
          Reporter: kustodian at gmail.com

When ControlMaster and ControlPersist are used the ssh client will
sometimes throw a 'mux_client_hello_exchange: write packet: Broken
pipe' error when it tries to connect to the socket which is just about
to expire.

This issue is very hard to reproduce, I noticed it while I was working
with Ansible with a lot of hosts. To reproduce it you have to:

1. Enable ControlMaster and set ControlPersist=60,
2. Then try to connect to a lot of hosts (100+ in my test case),
3. Wait about 55-58 seconds and then try to connect again.

Out of 100 hosts, on about 2-10 hosts (depending on the case) Ansible
will fail to connect over ssh with ssh returning the error mentioned
above. Here is the link to the issue in Ansible
https://github.com/ansible/ansible/issues/16731 which has a playbook
which can reproduce this bug. This issue should be resolved in Ansible
version 2.4 when it's released, but this is still an issue with the SSH
client, and not Ansible.

It's like there is some race condition with the ControlPersist socket
expiring and being reused by ssh.

-- 
You are receiving this mail because:
You are watching the assignee of the bug.


More information about the openssh-bugs mailing list