mitogen-hq / mitogen

Distributed self-replicating programs in Python
https://mitogen.networkgenomics.com/
BSD 3-Clause "New" or "Revised" License
2.32k stars 197 forks source link

Cisco module not working at all #342

Open dsgnr opened 6 years ago

dsgnr commented 6 years ago

Hi there,

I am using the Cisco module which works without Mitogen enabled. This is using the current master branch.

OS info:

root@v-ubnt004:~# cat /etc/issue
Ubuntu 18.04.1 LTS \n \l

root@v-ubnt004:~# uname -msr
Linux 4.15.0-30-generic x86_64

Ansible info:

root@v-ubnt004:~# ansible --version
ansible 2.6.2
    config file = /etc/ansible/ansible.cfg
    configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
    ansible python module location = /usr/lib/python2.7/dist-packages/ansible
    executable location = /usr/bin/ansible
    python version = 2.7.15rc1 (default, Apr 15 2018, 21:51:34) [GCC 7.3.0]   

root@v-ubnt004:~# ansible-config dump --only-changed
ANSIBLE_PIPELINING(/etc/ansible/ansible.cfg) = True
CACHE_PLUGIN(/etc/ansible/ansible.cfg) = redis
CACHE_PLUGIN_CONNECTION(/etc/ansible/ansible.cfg) = localhost:6379:0
CACHE_PLUGIN_TIMEOUT(/etc/ansible/ansible.cfg) = 604800
DEFAULT_FILTER_PLUGIN_PATH(/etc/ansible/ansible.cfg) = [u'/etc/ansible/plugins/filter']
DEFAULT_FORKS(/etc/ansible/ansible.cfg) = 30
DEFAULT_GATHERING(/etc/ansible/ansible.cfg) = smart
DEFAULT_HOST_LIST(/etc/ansible/ansible.cfg) = [u'/etc/ansible/hosts']
DEFAULT_INTERNAL_POLL_INTERVAL(/etc/ansible/ansible.cfg) = 0.001
DEFAULT_POLL_INTERVAL(/etc/ansible/ansible.cfg) = 15
DEFAULT_ROLES_PATH(/etc/ansible/ansible.cfg) = [u'/etc/ansible/roles', u'/usr/share/ansible/roles']
DEFAULT_STRATEGY(/etc/ansible/ansible.cfg) = mitogen_linear
DEFAULT_STRATEGY_PLUGIN_PATH(/etc/ansible/ansible.cfg) = [u'/etc/ansible/plugins/mitogen/ansible_mitogen/plugins/strategy']
DEFAULT_VAULT_PASSWORD_FILE(/etc/ansible/ansible.cfg) = /etc/ansible/.vault_pass
HOST_KEY_CHECKING(/etc/ansible/ansible.cfg) = False
RETRY_FILES_ENABLED(/etc/ansible/ansible.cfg) = False

Python info:

root@v-ubnt004:~# python -V
Python 2.7.15rc1

Ansible group info:

[cisco:vars]
ansible_connection=network_cli
ansible_network_os=ios

Error:

root@v-ubnt004:~# ansible -m ping cisco -vvvv
ansible 2.6.2
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/dist-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.15rc1 (default, Apr 15 2018, 21:51:34) [GCC 7.3.0]
Using /etc/ansible/ansible.cfg as config file
setting up inventory plugins
Set default localhost to localhost
Parsed /etc/ansible/hosts inventory source with ini plugin
Loading callback plugin minimal of type stdout, v2.0 from /usr/lib/python2.7/dist-packages/ansible/plugins/callback/minimal.pyc
[pid 26312] 19:10:01.969096 D mitogen.io: Router(Broker(0x7fa8064a6f50)).add_handler(<bound method IdAllocator.on_allocate_id of IdAllocator(Router(Broker(0x7fa8064a6f50)))>, 105, True)
[pid 26312] 19:10:01.970468 D mitogen.io: Router(Broker(0x7fa8064a6f50)).add_handler(<bound method ModuleResponder._on_get_module of ModuleResponder(Router(Broker(0x7fa8064a6f50)))>, 100, True)
[pid 26312] 19:10:01.970652 D mitogen.io: Router(Broker(0x7fa8064a6f50)).add_handler(<bound method LogForwarder._on_forward_log of LogForwarder(Router(Broker(0x7fa8064a6f50)))>, 102, True)
[pid 26312] 19:10:01.970851 D mitogen.io: Router(Broker(0x7fa8064a6f50)).add_handler(<bound method RouteMonitor._on_add_route of <mitogen.parent.RouteMonitor object at 0x7fa805a2e390>>, 103, True)
[pid 26312] 19:10:01.971095 D mitogen.io: Router(Broker(0x7fa8064a6f50)).add_handler(<bound method RouteMonitor._on_del_route of <mitogen.parent.RouteMonitor object at 0x7fa805a2e390>>, 104, True)
[pid 26312] 19:10:01.971260 D mitogen.io: Router(Broker(0x7fa8064a6f50)).add_handler(<bound method Router._on_detaching of Router(Broker(0x7fa8064a6f50))>, 109, True)
[pid 26312] 19:10:01.971718 D mitogen.io: Broker(0x7fa8064a6f50).start_receive(<mitogen.unix.Listener object at 0x7fa805a2e3d0>)
[pid 26312] 19:10:01.971893 D mitogen.io: Waker(Broker(0x7fa8064a6f50) rfd=8, wfd=10).defer() [fd=10]
[pid 26312] 19:10:01.972385 D mitogen.io: Router(Broker(0x7fa8064a6f50)).add_handler(<bound method Receiver._on_receive of Receiver(Router(Broker(0x7fa8064a6f50)), 110)>, 110, True)
[pid 26312] 19:10:01.972691 D mitogen.io: EpollPoller(0x7fa805a2e1d0): POLLIN: 8
[pid 26312] 19:10:01.973422 D mitogen.io: Waker(Broker(0x7fa8064a6f50) rfd=8, wfd=10).on_receive()
[pid 26312] 19:10:01.974516 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-0').get(timeout=None, block=True)
[pid 26312] 19:10:01.975519 D mitogen.io: EpollPoller(0x7fa805a2e1d0).start_receive(13, (<Side of <mitogen.unix.Listener object at 0x7fa805a2e3d0> fd 13>, <bound method Listener.on_receive of <mitogen.unix.Listener object at 0x7fa805a2e3d0>>))
[pid 26312] 19:10:01.975846 D mitogen.io: EpollPoller(0x7fa805a2e1d0)._control(13)
[pid 26312] 19:10:01.976299 D mitogen.io: Broker(0x7fa8064a6f50)._loop_once(None, EpollPoller(0x7fa805a2e1d0))
[pid 26312] 19:10:01.976403 D mitogen.io: EpollPoller(0x7fa805a2ee10).start_receive(14, None)
[pid 26312] 19:10:01.976531 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-1').get(timeout=None, block=True)
[pid 26312] 19:10:01.977244 D mitogen.io: EpollPoller(0x7fa805a2ee10)._control(14)
[pid 26312] 19:10:01.977755 D mitogen.io: EpollPoller(0x7fa805a2eed0).start_receive(17, None)
[pid 26312] 19:10:01.977979 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-2').get(timeout=None, block=True)
[pid 26312] 19:10:01.978573 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-3').get(timeout=None, block=True)
[pid 26312] 19:10:01.978754 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-0')._get_sleep(timeout=None, block=True, rfd=14, wfd=15)
[pid 26312] 19:10:01.979300 D mitogen.io: EpollPoller(0x7fa805a2eed0)._control(17)
[pid 26312] 19:10:01.981924 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-1')._get_sleep(timeout=None, block=True, rfd=17, wfd=18)
[pid 26312] 19:10:01.979782 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-4').get(timeout=None, block=True)
[pid 26312] 19:10:01.980281 D mitogen.io: EpollPoller(0x7fa805a41190).start_receive(20, None)
[pid 26312] 19:10:01.983548 D mitogen.io: EpollPoller(0x7fa805a41190)._control(20)
[pid 26312] 19:10:01.981434 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-7').get(timeout=None, block=True)
[pid 26312] 19:10:01.981805 D mitogen.io: EpollPoller(0x7fa805a41990).start_receive(23, None)
[pid 26312] 19:10:01.979680 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-5').get(timeout=None, block=True)
[pid 26312] 19:10:01.982586 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-8').get(timeout=None, block=True)
[pid 26312] 19:10:01.983264 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-9').get(timeout=None, block=True)
[pid 26312] 19:10:01.983116 D mitogen.io: EpollPoller(0x7fa805a41a90).start_receive(26, None)
[pid 26312] 19:10:01.980644 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-6').get(timeout=None, block=True)
[pid 26312] 19:10:01.983789 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-10').get(timeout=None, block=True)
[pid 26312] 19:10:01.984136 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-2')._get_sleep(timeout=None, block=True, rfd=20, wfd=21)
[pid 26312] 19:10:01.984467 D mitogen.io: EpollPoller(0x7fa805a41f10).start_receive(29, None)
[pid 26312] 19:10:01.984698 D mitogen.io: EpollPoller(0x7fa805a41990)._control(23)
[pid 26312] 19:10:01.985095 D mitogen.io: EpollPoller(0x7fa805a41210).start_receive(32, None)
[pid 26312] 19:10:01.985396 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-11').get(timeout=None, block=True)
[pid 26312] 19:10:01.989448 D mitogen: mitogen.service.Pool(0x7fa805a2e7d0, size=16, th='MainThread'): initialized
[pid 26312] 19:10:01.986160 D mitogen.io: EpollPoller(0x7fa805a41a90)._control(26)
[pid 26312] 19:10:01.986551 D mitogen.io: EpollPoller(0x7fa805a41bd0).start_receive(35, None)
[pid 26312] 19:10:01.986771 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-12').get(timeout=None, block=True)
[pid 26312] 19:10:01.991020 D ansible_mitogen.process: Service pool configured: size=16
[pid 26312] 19:10:01.987418 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-13').get(timeout=None, block=True)
[pid 26312] 19:10:01.993184 D mitogen.io: EpollPoller(0x7fa805a58690).start_receive(53, None)
[pid 26312] 19:10:01.988727 D mitogen.io: EpollPoller(0x7fa805a41f10)._control(29)
[pid 26312] 19:10:01.993719 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-7')._get_sleep(timeout=None, block=True, rfd=29, wfd=30)
[pid 26312] 19:10:01.989316 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-3')._get_sleep(timeout=None, block=True, rfd=23, wfd=24)
[pid 26312] 19:10:01.989851 D mitogen.io: EpollPoller(0x7fa805a41210)._control(32)
[pid 26312] 19:10:01.990170 D mitogen.io: EpollPoller(0x7fa805a58b10).start_receive(44, None)
[pid 26312] 19:10:01.990270 D mitogen.io: EpollPoller(0x7fa805a41690).start_receive(41, None)
META: ran handlers
[pid 26312] 19:10:01.991375 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-4')._get_sleep(timeout=None, block=True, rfd=26, wfd=27)
[pid 26312] 19:10:01.989226 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-15').get(timeout=None, block=True)
[pid 26312] 19:10:01.991808 D mitogen.io: EpollPoller(0x7fa805a58d50).start_receive(47, None)
[pid 26312] 19:10:01.991903 D mitogen.io: EpollPoller(0x7fa805a41bd0)._control(35)
[pid 26312] 19:10:01.992870 D mitogen.io: EpollPoller(0x7fa805a2e9d0).start_receive(50, None)
[pid 26312] 19:10:01.987953 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-14').get(timeout=None, block=True)
[pid 26312] 19:10:01.993408 D mitogen.io: EpollPoller(0x7fa805a58690)._control(53)
[pid 26312] 19:10:01.988641 D mitogen.io: EpollPoller(0x7fa805a41550).start_receive(38, None)
[pid 26312] 19:10:01.994409 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-5')._get_sleep(timeout=None, block=True, rfd=32, wfd=33)
[pid 26312] 19:10:01.994639 D mitogen.io: EpollPoller(0x7fa805a58b10)._control(44)
[pid 26312] 19:10:01.995247 D mitogen.io: EpollPoller(0x7fa805a41690)._control(41)
[pid 26312] 19:10:01.996150 D mitogen.io: EpollPoller(0x7fa805a58a90).start_receive(56, None)
[pid 26312] 19:10:01.996270 D mitogen.io: EpollPoller(0x7fa805a58d50)._control(47)
[pid 26312] 19:10:01.996523 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-8')._get_sleep(timeout=None, block=True, rfd=35, wfd=36)
[pid 26312] 19:10:01.996969 D mitogen.io: EpollPoller(0x7fa805a2e9d0)._control(50)
[pid 26312] 19:10:01.997637 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-13')._get_sleep(timeout=None, block=True, rfd=53, wfd=54)
[pid 26312] 19:10:01.997925 D mitogen.io: EpollPoller(0x7fa805a41550)._control(38)
[pid 26312] 19:10:02.000851 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-9')._get_sleep(timeout=None, block=True, rfd=38, wfd=39)
[pid 26312] 19:10:01.998443 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-10')._get_sleep(timeout=None, block=True, rfd=44, wfd=45)
[pid 26312] 19:10:01.998924 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-6')._get_sleep(timeout=None, block=True, rfd=41, wfd=42)
[pid 26312] 19:10:01.999208 D mitogen.io: EpollPoller(0x7fa805a58a90)._control(56)
[pid 26312] 19:10:01.999758 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-11')._get_sleep(timeout=None, block=True, rfd=47, wfd=48)
[pid 26312] 19:10:02.000540 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-12')._get_sleep(timeout=None, block=True, rfd=50, wfd=51)
[pid 26312] 19:10:01.998204 D mitogen.io: EpollPoller(0x7fa805a58710).start_receive(59, None)
[pid 26312] 19:10:02.001989 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-15')._get_sleep(timeout=None, block=True, rfd=56, wfd=57)
[pid 26312] 19:10:02.002756 D mitogen.io: EpollPoller(0x7fa805a58710)._control(59)
[pid 26312] 19:10:02.003233 D mitogen.io: Latch(0x7fa805a2e8d0, size=0, t='mitogen.service.Pool.7fa805a2e7d0.worker-14')._get_sleep(timeout=None, block=True, rfd=59, wfd=60)
The full traceback is:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/ansible/executor/task_executor.py", line 138, in run
    res = self._execute()
File "/usr/lib/python2.7/dist-packages/ansible/executor/task_executor.py", line 522, in _execute
    self._connection = self._get_connection(variables=variables, templar=templar)
File "/usr/lib/python2.7/dist-packages/ansible/executor/task_executor.py", line 808, in _get_connection
    ansible_playbook_pid=to_text(os.getppid())
File "/etc/ansible/plugins/mitogen/ansible_mitogen/strategy.py", line 65, in wrap_connection_loader__get
    return connection_loader__get(name, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/ansible/plugins/loader.py", line 397, in get
    obj = obj(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/ansible/plugins/connection/network_cli.py", line 217, in __init__
    self._update_connection_state()
File "/usr/lib/python2.7/dist-packages/ansible/plugins/connection/network_cli.py", line 350, in _update_connection_state
    cp = ssh._create_control_path(self._play_context.remote_addr, self._play_context.port, self._play_context.remote_user, self._play_context.connection,
AttributeError: type object 'Connection' has no attribute '_create_control_path'

SW1 | FAILED! => {
    "msg": "Unexpected failure during module execution.",
    "stdout": ""
}
root@v-ubnt004:/etc/ansible/plugins# [pid 26312] 19:10:02.087861 D mitogen.io: io_op(<built-in method recv of _socket.socket object at 0x7fa806492148>) -> OSError: [Errno 104] Connection reset by peer
[pid 26312] 19:10:02.088668 D mitogen.io: Waker(Broker(0x7fa8064a6f50) rfd=8, wfd=10).defer() [fd=10]
[pid 26312] 19:10:02.089118 D mitogen.io: EpollPoller(0x7fa805a2e1d0): POLLIN: 8
[pid 26312] 19:10:02.089337 D mitogen.io: Waker(Broker(0x7fa8064a6f50) rfd=8, wfd=10).on_receive()
[pid 26312] 19:10:02.089804 D mitogen.io: EpollPoller(0x7fa805a2ee10): POLLIN: 14
[pid 26312] 19:10:02.089934 D mitogen.io: EpollPoller(0x7fa805a41990): POLLIN: 23
[pid 26312] 19:10:02.090018 D mitogen.io: EpollPoller(0x7fa805a41190): POLLIN: 20
[pid 26312] 19:10:02.090369 D mitogen.io: EpollPoller(0x7fa805a41a90): POLLIN: 26
[pid 26312] 19:10:02.092310 D mitogen: Waker(Broker(0x7fa8064a6f50) rfd=8, wfd=10).on_disconnect()
[pid 26312] 19:10:02.092757 I mitogen: mitogen.service.Pool(0x7fa805a2e7d0, size=16, th='mitogen.service.Pool.7fa805a2e7d0.worker-0'): channel or latch closed, exitting: None
[pid 26312] 19:10:02.090542 D mitogen.io: EpollPoller(0x7fa805a41f10): POLLIN: 29
[pid 26312] 19:10:02.093214 I mitogen: mitogen.service.Pool(0x7fa805a2e7d0, size=16, th='mitogen.service.Pool.7fa805a2e7d0.worker-3'): channel or latch closed, exitting: None
[pid 26312] 19:10:02.090798 D mitogen.io: EpollPoller(0x7fa805a41210): POLLIN: 32
[pid 26312] 19:10:02.090894 D mitogen.io: EpollPoller(0x7fa805a2eed0): POLLIN: 17
[pid 26312] 19:10:02.091363 D mitogen.io: EpollPoller(0x7fa805a41bd0): POLLIN: 35
[pid 26312] 19:10:02.093642 I mitogen: mitogen.service.Pool(0x7fa805a2e7d0, size=16, th='mitogen.service.Pool.7fa805a2e7d0.worker-4'): channel or latch closed, exitting: None
[pid 26312] 19:10:02.094978 I mitogen: mitogen.service.Pool(0x7fa805a2e7d0, size=16, th='mitogen.service.Pool.7fa805a2e7d0.worker-7'): channel or latch closed, exitting: None
[pid 26312] 19:10:02.093434 I mitogen: mitogen.service.Pool(0x7fa805a2e7d0, size=16, th='mitogen.service.Pool.7fa805a2e7d0.worker-2'): channel or latch closed, exitting: None
[pid 26312] 19:10:02.096038 I mitogen: mitogen.service.Pool(0x7fa805a2e7d0, size=16, th='mitogen.service.Pool.7fa805a2e7d0.worker-5'): channel or latch closed, exitting: None
[pid 26312] 19:10:02.091489 D mitogen.io: EpollPoller(0x7fa805a2e9d0): POLLIN: 50
[pid 26312] 19:10:02.091648 D mitogen.io: EpollPoller(0x7fa805a58a90): POLLIN: 56
[pid 26312] 19:10:02.096594 I mitogen: mitogen.service.Pool(0x7fa805a2e7d0, size=16, th='mitogen.service.Pool.7fa805a2e7d0.worker-1'): channel or latch closed, exitting: None
[pid 26312] 19:10:02.098380 I mitogen: mitogen.service.Pool(0x7fa805a2e7d0, size=16, th='mitogen.service.Pool.7fa805a2e7d0.worker-8'): channel or latch closed, exitting: None
[pid 26312] 19:10:02.100948 I mitogen: mitogen.service.Pool(0x7fa805a2e7d0, size=16, th='mitogen.service.Pool.7fa805a2e7d0.worker-12'): channel or latch closed, exitting: None
[pid 26312] 19:10:02.103551 I mitogen: mitogen.service.Pool(0x7fa805a2e7d0, size=16, th='mitogen.service.Pool.7fa805a2e7d0.worker-15'): channel or latch closed, exitting: None
[pid 26312] 19:10:02.091730 D mitogen.io: EpollPoller(0x7fa805a58b10): POLLIN: 44
[pid 26312] 19:10:02.091822 D mitogen.io: EpollPoller(0x7fa805a41550): POLLIN: 38
[pid 26312] 19:10:02.091940 D mitogen.io: EpollPoller(0x7fa805a41690): POLLIN: 41
[pid 26312] 19:10:02.108363 I mitogen: mitogen.service.Pool(0x7fa805a2e7d0, size=16, th='mitogen.service.Pool.7fa805a2e7d0.worker-10'): channel or latch closed, exitting: None
[pid 26312] 19:10:02.109556 I mitogen: mitogen.service.Pool(0x7fa805a2e7d0, size=16, th='mitogen.service.Pool.7fa805a2e7d0.worker-9'): channel or latch closed, exitting: None
[pid 26312] 19:10:02.092027 D mitogen.io: EpollPoller(0x7fa805a58690): POLLIN: 53
[pid 26312] 19:10:02.114409 I mitogen: mitogen.service.Pool(0x7fa805a2e7d0, size=16, th='mitogen.service.Pool.7fa805a2e7d0.worker-6'): channel or latch closed, exitting: None
[pid 26312] 19:10:02.116921 I mitogen: mitogen.service.Pool(0x7fa805a2e7d0, size=16, th='mitogen.service.Pool.7fa805a2e7d0.worker-13'): channel or latch closed, exitting: None
[pid 26312] 19:10:02.092358 D mitogen.io: EpollPoller(0x7fa805a58d50): POLLIN: 47
[pid 26312] 19:10:02.092884 D mitogen.io: Broker(0x7fa8064a6f50).stop_receive(Waker(Broker(0x7fa8064a6f50) rfd=8, wfd=10))
[pid 26312] 19:10:02.127111 I mitogen: mitogen.service.Pool(0x7fa805a2e7d0, size=16, th='mitogen.service.Pool.7fa805a2e7d0.worker-11'): channel or latch closed, exitting: None
[pid 26312] 19:10:02.093324 D mitogen.io: EpollPoller(0x7fa805a58710): POLLIN: 59
[pid 26312] 19:10:02.127948 D mitogen.io: Waker(Broker(0x7fa8064a6f50) rfd=8, wfd=10).defer() [immediate]
[pid 26312] 19:10:02.133503 D mitogen.io: EpollPoller(0x7fa805a2e1d0).stop_receive(8)
[pid 26312] 19:10:02.135278 I mitogen: mitogen.service.Pool(0x7fa805a2e7d0, size=16, th='mitogen.service.Pool.7fa805a2e7d0.worker-14'): channel or latch closed, exitting: None
[pid 26312] 19:10:02.139165 D mitogen.io: EpollPoller(0x7fa805a2e1d0)._control(8)
[pid 26312] 19:10:02.139419 D mitogen.io: <Side of Waker(Broker(0x7fa8064a6f50) rfd=8, wfd=10) fd 8>.close()
[pid 26312] 19:10:02.142452 D mitogen.io: Broker(0x7fa8064a6f50)._stop_transmit(Waker(Broker(0x7fa8064a6f50) rfd=8, wfd=10))
[pid 26312] 19:10:02.143151 D mitogen.io: EpollPoller(0x7fa805a2e1d0).stop_transmit(10)
[pid 26312] 19:10:02.143546 D mitogen.io: EpollPoller(0x7fa805a2e1d0)._control(10)
[pid 26312] 19:10:02.144672 D mitogen.io: <Side of Waker(Broker(0x7fa8064a6f50) rfd=8, wfd=10) fd 10>.close()
[pid 26312] 19:10:02.144924 D mitogen: <mitogen.unix.Listener object at 0x7fa805a2e3d0>.on_disconnect()
[pid 26312] 19:10:02.149601 D mitogen.io: Broker(0x7fa8064a6f50).stop_receive(<mitogen.unix.Listener object at 0x7fa805a2e3d0>)
[pid 26312] 19:10:02.150661 D mitogen.io: Waker(Broker(0x7fa8064a6f50) rfd=8, wfd=10).defer() [immediate]
[pid 26312] 19:10:02.151288 D mitogen.io: EpollPoller(0x7fa805a2e1d0).stop_receive(13)
[pid 26312] 19:10:02.151583 D mitogen.io: EpollPoller(0x7fa805a2e1d0)._control(13)
[pid 26312] 19:10:02.152616 D mitogen.io: <Side of <mitogen.unix.Listener object at 0x7fa805a2e3d0> fd 13>.close()
[pid 26312] 19:10:02.154989 D mitogen.io: Receiver(Router(Broker(0x7fa8064a6f50)), 110)._on_receive(Message(None, 0, 0, None, 999, ''..0))
[pid 26312] 19:10:02.157840 D mitogen.io: Latch(0x7fa805a2e890, size=0, t='mitogen-broker').put(Message(None, 0, 0, None, 999, ''..0))
dw commented 6 years ago

Thanks for reporting this. I'm still working through Ansible 2.6 issues, and possibly this a new one. Have you tried on 2.5? I have personally never seen network_cli working due to the difficulty in getting a working gns3 config to test against

dsgnr commented 6 years ago

I will spin up a new VM and test with Ansible 2.5. This is the first issue I've encountered with 2.6.x so far. Will update this shortly.

dw commented 6 years ago

On investigating the stack trace, it seems highly likely that it is broken on 2.5 too -- it is using a private method of the old SSH plugin that the Mitogen replacement lacks. Please leave this with me -- these will be easy to fix once I have a working GNS3 running somewhere to test against

dsgnr commented 6 years ago

Confirmed issue with 2.5.0 also:

OS info:

root@v-ansible-test:~# cat /etc/issue
Ubuntu 18.04 LTS \n \l

root@v-ansible-test:~# uname -msr
Linux 4.15.0-20-generic x86_64

Python info:

root@v-ansible-test:~# python -V
Python 2.7.15rc1

Ansible info:

root@v-ansible-test:~# ansible --version
ansible 2.5.0
    config file = /etc/ansible/ansible.cfg
    configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
    ansible python module location = /usr/local/lib/python2.7/dist-packages/ansible
    executable location = /usr/local/bin/ansible
    python version = 2.7.15rc1 (default, Apr 15 2018, 21:51:34) [GCC 7.3.0]

root@v-ansible-test:~# ansible-config dump --only-changed
ANSIBLE_PIPELINING(/etc/ansible/ansible.cfg) = True
DEFAULT_FILTER_PLUGIN_PATH(/etc/ansible/ansible.cfg) = [u'/etc/ansible/plugins/filter']
DEFAULT_FORKS(/etc/ansible/ansible.cfg) = 30
DEFAULT_HOST_LIST(/etc/ansible/ansible.cfg) = [u'/etc/ansible/hosts']
DEFAULT_INTERNAL_POLL_INTERVAL(/etc/ansible/ansible.cfg) = 0.001
DEFAULT_POLL_INTERVAL(/etc/ansible/ansible.cfg) = 15
DEFAULT_ROLES_PATH(/etc/ansible/ansible.cfg) = [u'/etc/ansible/roles', u'/usr/share/ansible/roles']
DEFAULT_STRATEGY(/etc/ansible/ansible.cfg) = mitogen_linear
DEFAULT_STRATEGY_PLUGIN_PATH(/etc/ansible/ansible.cfg) = [u'/etc/ansible/plugins/mitogen/ansible_mitogen/plugins/strategy']
HOST_KEY_CHECKING(/etc/ansible/ansible.cfg) = False
RETRY_FILES_ENABLED(/etc/ansible/ansible.cfg) = False

Error:

root@v-ansible-test:~# ansible -m ping cisco -vvvv
ansible 2.5.0
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python2.7/dist-packages/ansible
executable location = /usr/local/bin/ansible
python version = 2.7.15rc1 (default, Apr 15 2018, 21:51:34) [GCC 7.3.0]
Using /etc/ansible/ansible.cfg as config file
setting up inventory plugins
Parsed /etc/ansible/hosts inventory source with ini plugin
Loading callback plugin minimal of type stdout, v2.0 from /usr/local/lib/python2.7/dist-packages/ansible/plugins/callback/minimal.pyc
[pid 7901] 18:39:20.628783 D mitogen.io: Router(Broker(0x7fdcad1cae50)).add_handler(<bound method IdAllocator.on_allocate_id of IdAllocator(Router(Broker(0x7fdcad1cae50)))>, 105, True)
[pid 7901] 18:39:20.630123 D mitogen.io: Router(Broker(0x7fdcad1cae50)).add_handler(<bound method ModuleResponder._on_get_module of ModuleResponder(Router(Broker(0x7fdcad1cae50)))>, 100, True)
[pid 7901] 18:39:20.630357 D mitogen.io: Router(Broker(0x7fdcad1cae50)).add_handler(<bound method LogForwarder._on_forward_log of LogForwarder(Router(Broker(0x7fdcad1cae50)))>, 102, True)
[pid 7901] 18:39:20.630598 D mitogen.io: Router(Broker(0x7fdcad1cae50)).add_handler(<bound method RouteMonitor._on_add_route of <mitogen.parent.RouteMonitor object at 0x7fdcad1d6290>>, 103, True)
[pid 7901] 18:39:20.630766 D mitogen.io: Router(Broker(0x7fdcad1cae50)).add_handler(<bound method RouteMonitor._on_del_route of <mitogen.parent.RouteMonitor object at 0x7fdcad1d6290>>, 104, True)
[pid 7901] 18:39:20.630934 D mitogen.io: Router(Broker(0x7fdcad1cae50)).add_handler(<bound method Router._on_detaching of Router(Broker(0x7fdcad1cae50))>, 109, True)
[pid 7901] 18:39:20.631479 D mitogen.io: Broker(0x7fdcad1cae50).start_receive(<mitogen.unix.Listener object at 0x7fdcad1d62d0>)
[pid 7901] 18:39:20.631711 D mitogen.io: Waker(Broker(0x7fdcad1cae50) rfd=8, wfd=10).defer() [fd=10]
[pid 7901] 18:39:20.632227 D mitogen.io: Router(Broker(0x7fdcad1cae50)).add_handler(<bound method Receiver._on_receive of Receiver(Router(Broker(0x7fdcad1cae50)), 110)>, 110, True)
[pid 7901] 18:39:20.632326 D mitogen.io: EpollPoller(0x7fdcad1d60d0): POLLIN: 8
[pid 7901] 18:39:20.633179 D mitogen.io: Waker(Broker(0x7fdcad1cae50) rfd=8, wfd=10).on_receive()
[pid 7901] 18:39:20.634189 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-0').get(timeout=None, block=True)
[pid 7901] 18:39:20.634627 D mitogen.io: EpollPoller(0x7fdcad1d60d0).start_receive(14, (<Side of <mitogen.unix.Listener object at 0x7fdcad1d62d0> fd 14>, <bound method Listener.on_receive of <mitogen.unix.Listener object at 0x7fdcad1d62d0>>))
[pid 7901] 18:39:20.635092 D mitogen.io: EpollPoller(0x7fdcad1d60d0)._control(14)
[pid 7901] 18:39:20.635334 D mitogen.io: Broker(0x7fdcad1cae50)._loop_once(None, EpollPoller(0x7fdcad1d60d0))
[pid 7901] 18:39:20.635623 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-1').get(timeout=None, block=True)
[pid 7901] 18:39:20.635969 D mitogen.io: EpollPoller(0x7fdcad1d6dd0).start_receive(15, None)
[pid 7901] 18:39:20.636449 D mitogen.io: EpollPoller(0x7fdcad1d6850).start_receive(18, None)
[pid 7901] 18:39:20.636822 D mitogen.io: EpollPoller(0x7fdcad1d6850)._control(18)
[pid 7901] 18:39:20.637093 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-1')._get_sleep(timeout=None, block=True, rfd=18, wfd=19)
[pid 7901] 18:39:20.637388 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-2').get(timeout=None, block=True)
[pid 7901] 18:39:20.636577 D mitogen.io: EpollPoller(0x7fdcad1d6dd0)._control(15)
[pid 7901] 18:39:20.638011 D mitogen.io: EpollPoller(0x7fdcad1d6bd0).start_receive(21, None)
[pid 7901] 18:39:20.638146 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-0')._get_sleep(timeout=None, block=True, rfd=15, wfd=16)
[pid 7901] 18:39:20.638475 D mitogen.io: EpollPoller(0x7fdcad1d6bd0)._control(21)
[pid 7901] 18:39:20.639185 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-2')._get_sleep(timeout=None, block=True, rfd=21, wfd=22)
[pid 7901] 18:39:20.638572 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-3').get(timeout=None, block=True)
[pid 7901] 18:39:20.640009 D mitogen.io: EpollPoller(0x7fdcad1d6f10).start_receive(24, None)
[pid 7901] 18:39:20.640262 D mitogen.io: EpollPoller(0x7fdcad1d6f10)._control(24)
[pid 7901] 18:39:20.640546 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-3')._get_sleep(timeout=None, block=True, rfd=24, wfd=25)
[pid 7901] 18:39:20.640875 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-4').get(timeout=None, block=True)
[pid 7901] 18:39:20.641166 D mitogen.io: EpollPoller(0x7fdcad1e60d0).start_receive(27, None)
[pid 7901] 18:39:20.641352 D mitogen.io: EpollPoller(0x7fdcad1e60d0)._control(27)
[pid 7901] 18:39:20.641556 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-4')._get_sleep(timeout=None, block=True, rfd=27, wfd=28)
[pid 7901] 18:39:20.641870 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-5').get(timeout=None, block=True)
[pid 7901] 18:39:20.642148 D mitogen.io: EpollPoller(0x7fdcad1e6510).start_receive(30, None)
[pid 7901] 18:39:20.642341 D mitogen.io: EpollPoller(0x7fdcad1e6510)._control(30)
[pid 7901] 18:39:20.642541 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-5')._get_sleep(timeout=None, block=True, rfd=30, wfd=31)
[pid 7901] 18:39:20.642903 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-6').get(timeout=None, block=True)
[pid 7901] 18:39:20.643181 D mitogen.io: EpollPoller(0x7fdcad1e66d0).start_receive(33, None)
[pid 7901] 18:39:20.643364 D mitogen.io: EpollPoller(0x7fdcad1e66d0)._control(33)
[pid 7901] 18:39:20.643573 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-6')._get_sleep(timeout=None, block=True, rfd=33, wfd=34)
[pid 7901] 18:39:20.643843 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-7').get(timeout=None, block=True)
[pid 7901] 18:39:20.644370 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-8').get(timeout=None, block=True)
[pid 7901] 18:39:20.644578 D mitogen.io: EpollPoller(0x7fdcad1e6a50).start_receive(36, None)
[pid 7901] 18:39:20.644752 D mitogen.io: EpollPoller(0x7fdcad1e6a10).start_receive(39, None)
[pid 7901] 18:39:20.644913 D mitogen.io: EpollPoller(0x7fdcad1e6a50)._control(36)
[pid 7901] 18:39:20.645765 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-7')._get_sleep(timeout=None, block=True, rfd=36, wfd=37)
[pid 7901] 18:39:20.645379 D mitogen.io: EpollPoller(0x7fdcad1e6a10)._control(39)
[pid 7901] 18:39:20.646400 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-8')._get_sleep(timeout=None, block=True, rfd=39, wfd=40)
[pid 7901] 18:39:20.645192 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-10').get(timeout=None, block=True)
[pid 7901] 18:39:20.645962 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-11').get(timeout=None, block=True)
[pid 7901] 18:39:20.646089 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-12').get(timeout=None, block=True)
[pid 7901] 18:39:20.645428 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-9').get(timeout=None, block=True)
[pid 7901] 18:39:20.647217 D mitogen.io: EpollPoller(0x7fdcac77a3d0).start_receive(42, None)
[pid 7901] 18:39:20.648114 D mitogen: mitogen.service.Pool(0x7fdcad1d66d0, size=16, th='MainThread'): initialized
[pid 7901] 18:39:20.648459 D ansible_mitogen.process: Service pool configured: size=16
[pid 7901] 18:39:20.648677 D mitogen.io: EpollPoller(0x7fdcac77a3d0)._control(42)
META: ran handlers
[pid 7901] 18:39:20.652023 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-10')._get_sleep(timeout=None, block=True, rfd=42, wfd=43)
[pid 7901] 18:39:20.647579 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-14').get(timeout=None, block=True)
[pid 7901] 18:39:20.648927 D mitogen.io: EpollPoller(0x7fdcad1d6910).start_receive(45, None)
[pid 7901] 18:39:20.652698 D mitogen.io: EpollPoller(0x7fdcad1d6910)._control(45)
[pid 7901] 18:39:20.651852 D mitogen.io: EpollPoller(0x7fdcac77a810).start_receive(48, None)
[pid 7901] 18:39:20.652982 D mitogen.io: EpollPoller(0x7fdcac77a810)._control(48)
[pid 7901] 18:39:20.652482 D mitogen.io: EpollPoller(0x7fdcad1e6790).start_receive(54, None)
[pid 7901] 18:39:20.651956 D mitogen.io: EpollPoller(0x7fdcac77a910).start_receive(51, None)
[pid 7901] 18:39:20.653518 D mitogen.io: EpollPoller(0x7fdcac77a910)._control(51)
[pid 7901] 18:39:20.653655 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-9')._get_sleep(timeout=None, block=True, rfd=51, wfd=52)
[pid 7901] 18:39:20.653316 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-11')._get_sleep(timeout=None, block=True, rfd=45, wfd=46)
[pid 7901] 18:39:20.653376 D mitogen.io: EpollPoller(0x7fdcad1e6790)._control(54)
[pid 7901] 18:39:20.653114 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-12')._get_sleep(timeout=None, block=True, rfd=48, wfd=49)
[pid 7901] 18:39:20.646986 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-13').get(timeout=None, block=True)
[pid 7901] 18:39:20.654138 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-14')._get_sleep(timeout=None, block=True, rfd=54, wfd=55)
[pid 7901] 18:39:20.654719 D mitogen.io: EpollPoller(0x7fdcad1e6e50).start_receive(57, None)
[pid 7901] 18:39:20.655054 D mitogen.io: EpollPoller(0x7fdcad1e6e50)._control(57)
[pid 7901] 18:39:20.655241 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-13')._get_sleep(timeout=None, block=True, rfd=57, wfd=58)
[pid 7901] 18:39:20.647860 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-15').get(timeout=None, block=True)
[pid 7901] 18:39:20.655984 D mitogen.io: EpollPoller(0x7fdcac77a290).start_receive(60, None)
[pid 7901] 18:39:20.656165 D mitogen.io: EpollPoller(0x7fdcac77a290)._control(60)
[pid 7901] 18:39:20.656347 D mitogen.io: Latch(0x7fdcad1d6810, size=0, t='mitogen.service.Pool.7fdcad1d66d0.worker-15')._get_sleep(timeout=None, block=True, rfd=60, wfd=61)
The full traceback is:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/ansible/executor/task_executor.py", line 138, in run
    res = self._execute()
File "/usr/local/lib/python2.7/dist-packages/ansible/executor/task_executor.py", line 512, in _execute
    self._connection = self._get_connection(variables=variables, templar=templar)
File "/usr/local/lib/python2.7/dist-packages/ansible/executor/task_executor.py", line 775, in _get_connection
    connection = self._shared_loader_obj.connection_loader.get(conn_type, self._play_context, self._new_stdin, ansible_playbook_pid=to_text(os.getppid()))
File "/etc/ansible/plugins/mitogen/ansible_mitogen/strategy.py", line 65, in wrap_connection_loader__get
    return connection_loader__get(name, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/ansible/plugins/loader.py", line 389, in get
    obj = obj(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/ansible/plugins/connection/network_cli.py", line 214, in __init__
    self._update_connection_state()
File "/usr/local/lib/python2.7/dist-packages/ansible/plugins/connection/network_cli.py", line 340, in _update_connection_state
    cp = ssh._create_control_path(self._play_context.remote_addr, self._play_context.port, self._play_context.remote_user, self._play_context.connection,
AttributeError: type object 'Connection' has no attribute '_create_control_path'

SW1 | FAILED! => {
    "msg": "Unexpected failure during module execution.",
    "stdout": ""
}
[pid 7901] 18:39:20.821479 D mitogen.io: io_op(<built-in method recv of _socket.socket object at 0x7fdcad230538>) -> OSError: [Errno 104] Connection reset by peer
[pid 7901] 18:39:20.822205 D mitogen.io: Waker(Broker(0x7fdcad1cae50) rfd=8, wfd=10).defer() [fd=10]
[pid 7901] 18:39:20.822483 D mitogen.io: EpollPoller(0x7fdcad1d60d0): POLLIN: 8
[pid 7901] 18:39:20.822619 D mitogen.io: Waker(Broker(0x7fdcad1cae50) rfd=8, wfd=10).on_receive()
[pid 7901] 18:39:20.822845 D mitogen.io: EpollPoller(0x7fdcad1d6dd0): POLLIN: 15
root@v-ubnttemplate002:~# [pid 7901] 18:39:20.823087 D mitogen.io: EpollPoller(0x7fdcad1d6850): POLLIN: 18
[pid 7901] 18:39:20.823299 D mitogen.io: EpollPoller(0x7fdcad1e6510): POLLIN: 30
[pid 7901] 18:39:20.823488 D mitogen.io: EpollPoller(0x7fdcad1d6bd0): POLLIN: 21
[pid 7901] 18:39:20.823547 D mitogen.io: EpollPoller(0x7fdcad1e66d0): POLLIN: 33
[pid 7901] 18:39:20.823440 D mitogen.io: EpollPoller(0x7fdcad1e60d0): POLLIN: 27
[pid 7901] 18:39:20.823627 D mitogen.io: EpollPoller(0x7fdcad1d6f10): POLLIN: 24
[pid 7901] 18:39:20.824038 D mitogen.io: EpollPoller(0x7fdcad1e6a10): POLLIN: 39
[pid 7901] 18:39:20.824097 D mitogen.io: EpollPoller(0x7fdcad1e6a50): POLLIN: 36
[pid 7901] 18:39:20.824216 D mitogen.io: EpollPoller(0x7fdcad1d6910): POLLIN: 45
[pid 7901] 18:39:20.825062 D mitogen: Waker(Broker(0x7fdcad1cae50) rfd=8, wfd=10).on_disconnect()
[pid 7901] 18:39:20.824602 D mitogen.io: EpollPoller(0x7fdcac77a810): POLLIN: 48
[pid 7901] 18:39:20.825341 I mitogen: mitogen.service.Pool(0x7fdcad1d66d0, size=16, th='mitogen.service.Pool.7fdcad1d66d0.worker-5'): channel or latch closed, exitting: None
[pid 7901] 18:39:20.824663 D mitogen.io: EpollPoller(0x7fdcac77a3d0): POLLIN: 42
[pid 7901] 18:39:20.824919 D mitogen.io: EpollPoller(0x7fdcad1e6e50): POLLIN: 57
[pid 7901] 18:39:20.825395 I mitogen: mitogen.service.Pool(0x7fdcad1d66d0, size=16, th='mitogen.service.Pool.7fdcad1d66d0.worker-0'): channel or latch closed, exitting: None
[pid 7901] 18:39:20.824985 D mitogen.io: EpollPoller(0x7fdcad1e6790): POLLIN: 54
[pid 7901] 18:39:20.825567 D mitogen.io: EpollPoller(0x7fdcac77a290): POLLIN: 60
[pid 7901] 18:39:20.825682 I mitogen: mitogen.service.Pool(0x7fdcad1d66d0, size=16, th='mitogen.service.Pool.7fdcad1d66d0.worker-1'): channel or latch closed, exitting: None
[pid 7901] 18:39:20.825620 D mitogen.io: EpollPoller(0x7fdcac77a910): POLLIN: 51
[pid 7901] 18:39:20.826039 D mitogen.io: Broker(0x7fdcad1cae50).stop_receive(Waker(Broker(0x7fdcad1cae50) rfd=8, wfd=10))
[pid 7901] 18:39:20.830968 D mitogen.io: Waker(Broker(0x7fdcad1cae50) rfd=8, wfd=10).defer() [immediate]
[pid 7901] 18:39:20.831195 D mitogen.io: EpollPoller(0x7fdcad1d60d0).stop_receive(8)
[pid 7901] 18:39:20.831386 D mitogen.io: EpollPoller(0x7fdcad1d60d0)._control(8)
[pid 7901] 18:39:20.825763 I mitogen: mitogen.service.Pool(0x7fdcad1d66d0, size=16, th='mitogen.service.Pool.7fdcad1d66d0.worker-2'): channel or latch closed, exitting: None
[pid 7901] 18:39:20.825976 I mitogen: mitogen.service.Pool(0x7fdcad1d66d0, size=16, th='mitogen.service.Pool.7fdcad1d66d0.worker-6'): channel or latch closed, exitting: None
[pid 7901] 18:39:20.826224 I mitogen: mitogen.service.Pool(0x7fdcad1d66d0, size=16, th='mitogen.service.Pool.7fdcad1d66d0.worker-4'): channel or latch closed, exitting: None
[pid 7901] 18:39:20.831585 D mitogen.io: <Side of Waker(Broker(0x7fdcad1cae50) rfd=8, wfd=10) fd 8>.close()
[pid 7901] 18:39:20.834386 D mitogen.io: Broker(0x7fdcad1cae50)._stop_transmit(Waker(Broker(0x7fdcad1cae50) rfd=8, wfd=10))
[pid 7901] 18:39:20.834524 D mitogen.io: EpollPoller(0x7fdcad1d60d0).stop_transmit(10)
[pid 7901] 18:39:20.834699 D mitogen.io: EpollPoller(0x7fdcad1d60d0)._control(10)
[pid 7901] 18:39:20.835247 D mitogen.io: <Side of Waker(Broker(0x7fdcad1cae50) rfd=8, wfd=10) fd 10>.close()
[pid 7901] 18:39:20.826829 I mitogen: mitogen.service.Pool(0x7fdcad1d66d0, size=16, th='mitogen.service.Pool.7fdcad1d66d0.worker-3'): channel or latch closed, exitting: None
[pid 7901] 18:39:20.827045 I mitogen: mitogen.service.Pool(0x7fdcad1d66d0, size=16, th='mitogen.service.Pool.7fdcad1d66d0.worker-8'): channel or latch closed, exitting: None
[pid 7901] 18:39:20.829404 I mitogen: mitogen.service.Pool(0x7fdcad1d66d0, size=16, th='mitogen.service.Pool.7fdcad1d66d0.worker-7'): channel or latch closed, exitting: None
[pid 7901] 18:39:20.829967 I mitogen: mitogen.service.Pool(0x7fdcad1d66d0, size=16, th='mitogen.service.Pool.7fdcad1d66d0.worker-12'): channel or latch closed, exitting: None
[pid 7901] 18:39:20.830106 I mitogen: mitogen.service.Pool(0x7fdcad1d66d0, size=16, th='mitogen.service.Pool.7fdcad1d66d0.worker-9'): channel or latch closed, exitting: None
[pid 7901] 18:39:20.830246 I mitogen: mitogen.service.Pool(0x7fdcad1d66d0, size=16, th='mitogen.service.Pool.7fdcad1d66d0.worker-15'): channel or latch closed, exitting: None
[pid 7901] 18:39:20.830678 I mitogen: mitogen.service.Pool(0x7fdcad1d66d0, size=16, th='mitogen.service.Pool.7fdcad1d66d0.worker-10'): channel or latch closed, exitting: None
[pid 7901] 18:39:20.830754 I mitogen: mitogen.service.Pool(0x7fdcad1d66d0, size=16, th='mitogen.service.Pool.7fdcad1d66d0.worker-13'): channel or latch closed, exitting: None
[pid 7901] 18:39:20.830809 I mitogen: mitogen.service.Pool(0x7fdcad1d66d0, size=16, th='mitogen.service.Pool.7fdcad1d66d0.worker-11'): channel or latch closed, exitting: None
[pid 7901] 18:39:20.832173 I mitogen: mitogen.service.Pool(0x7fdcad1d66d0, size=16, th='mitogen.service.Pool.7fdcad1d66d0.worker-14'): channel or latch closed, exitting: None
[pid 7901] 18:39:20.845955 D mitogen: <mitogen.unix.Listener object at 0x7fdcad1d62d0>.on_disconnect()
[pid 7901] 18:39:20.849688 D mitogen.io: Broker(0x7fdcad1cae50).stop_receive(<mitogen.unix.Listener object at 0x7fdcad1d62d0>)
[pid 7901] 18:39:20.849860 D mitogen.io: Waker(Broker(0x7fdcad1cae50) rfd=8, wfd=10).defer() [immediate]
[pid 7901] 18:39:20.859858 D mitogen.io: EpollPoller(0x7fdcad1d60d0).stop_receive(14)
[pid 7901] 18:39:20.862927 D mitogen.io: EpollPoller(0x7fdcad1d60d0)._control(14)
[pid 7901] 18:39:20.870714 D mitogen.io: <Side of <mitogen.unix.Listener object at 0x7fdcad1d62d0> fd 14>.close()
[pid 7901] 18:39:20.871162 D mitogen.io: Receiver(Router(Broker(0x7fdcad1cae50)), 110)._on_receive(Message(None, 0, 0, None, 999, ''..0))
[pid 7901] 18:39:20.872415 D mitogen.io: Latch(0x7fdcad1d6790, size=0, t='mitogen-broker').put(Message(None, 0, 0, None, 999, ''..0))
dw commented 6 years ago

This should now be fixed on the master branch and will make it into the next release. To be updated when a new release is made, subscribe to https://www.freelists.org/list/mitogen-announce

If you are still experiencing the problem on the current master branch, please do not hesitate to reopen this issue.

Thanks for reporting this!

dsgnr commented 6 years ago

Hey, thanks for letting me know.

I've just downloaded the master branch again and gave it a go.

I'm afraid to say, I'm still getting a stack trace error:

The full traceback is:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/ansible/executor/task_executor.py", line 138, in run
    res = self._execute()
File "/usr/lib/python2.7/dist-packages/ansible/executor/task_executor.py", line 576, in _execute
    result = self._handler.run(task_vars=variables)
File "/usr/lib/python2.7/dist-packages/ansible/plugins/action/ios.py", line 99, in run
    result = super(ActionModule, self).run(task_vars=task_vars)
File "/usr/lib/python2.7/dist-packages/ansible/plugins/action/normal.py", line 46, in run
    result = merge_hash(result, self._execute_module(task_vars=task_vars, wrap_async=wrap_async))
File "/usr/lib/python2.7/dist-packages/ansible/plugins/action/__init__.py", line 853, in _execute_module
    res = self._low_level_execute_command(cmd, sudoable=sudoable, in_data=in_data)
File "/usr/lib/python2.7/dist-packages/ansible/plugins/action/__init__.py", line 960, in _low_level_execute_command
    rc, stdout, stderr = self._connection.exec_command(cmd, in_data=in_data, sudoable=sudoable)
File "/usr/lib/python2.7/dist-packages/ansible/plugins/connection/network_cli.py", line 256, in exec_command
    return self._local.exec_command(cmd, in_data, sudoable)
File "/etc/ansible/plugins/mitogen/ansible_mitogen/connection.py", line 763, in exec_command
    emulate_tty=emulate_tty,
File "/etc/ansible/plugins/mitogen/ansible_mitogen/connection.py", line 715, in call
    return self.call_async(func, *args, **kwargs).get().unpickle()
File "/etc/ansible/plugins/mitogen/ansible_mitogen/connection.py", line 697, in call_async
    self._connect()
File "/etc/ansible/plugins/mitogen/ansible_mitogen/connection.py", line 662, in _connect
    stack = self._build_stack()
File "/etc/ansible/plugins/mitogen/ansible_mitogen/connection.py", line 608, in _build_stack
    if self.delegate_to_hostname is not None:
AttributeError: 'Connection' object has no attribute 'delegate_to_hostname'

fatal: [SW1]: FAILED! => {
    "msg": "Unexpected failure during module execution.",
    "stdout": ""
}

Here's some info on my switch incase you were testing with a different IOS version:

sw1#show version
    Cisco IOS Software, C3750 Software (C3750-IPSERVICESK9-M), Version 12.2(55)SE11, RELEASE SOFTWARE (fc3)
    Technical Support: http://www.cisco.com/techsupport
    Copyright (c) 1986-2016 by Cisco Systems, Inc.
    Compiled Wed 17-Aug-16 13:28 by prod_rel_team
    Image text-base: 0x01000000, data-base: 0x02F00000

If you need any more info from -vvv then let me know

dw commented 6 years ago

Thanks a ton for letting me know! I had a worked GNS3 setup not a week ago, and can't get the damn thing to connect today. Wil re-close the bug once I've absolutely confirmed it's working. Sorry for the hassle :)

dsgnr commented 6 years ago

Not at all. Bugs are meant to be squished! More than happy to test etc

dw commented 6 years ago

The action monkey-patch shouldn't be active at all, zero clue how that code is even running!

dsgnr commented 6 years ago

More than happy to send over my playbook for you to experiment if necessary.

maxrainer commented 5 years ago

Hi, we are facing up the same problem in our project. Do you already know if that issue is solvable? As we are a Cisco partner with a large lab environment, we would be happy to help you solving that problem...

dsgnr commented 5 years ago

I have tested with the latest release of Mitogen and it seems to be fine for me. Thanks @dw!

dw commented 5 years ago

Really, it's fixed? :) That's nice! I struggled to get a working GNS3 setup to test against.

Do any of you networking folk know how I can get an easy to maintain GNS3 up and running? I wasted hours messing around, and only managed to keep it working for a single night.

Really I want some kind of VM with the telnet server exposed. Any ideas?

dsgnr commented 5 years ago

Yeah running my Cisco backup script works fine with the last release!

I’ve not used GNS3 personally, but pretty sure they have an ESXi image that you can import, if you use that at all

dw commented 5 years ago

Apologies for mail spam, just narrowly avoided a catastrophe!