Skip to content

Ansible Copy module stops (no subsequent task) #351

Description

@berenddeschouwer
  • Have you tried the latest master version from Git? yes, and 0.2.2
  • Fedora 28, x86_64
  • python 2.7.
  • I'll attach -vvv and MITOGEN_DUMP_THREAD_STACKS=1

Ansible "hangs" -- waits forever to move to the next task. This seems to always happen on a copy task if/when an ssh process closes unexpectedly. The remaining hosts continue the copy task, but no subsequent task starts. The playbook stops (doesn't finish)

There's a traceback in mitogen:

ERROR! [pid 5883] 13:15:07.091804 E mitogen: mitogen.service.Pool(0x7f4906caf850, size=16,th='mitogen.service.Pool.7f4906caf850.worker-1'): while invoking u'get' of u'ansible_mitogen.services.ContextService'
Traceback (most recent call last):
  File "/home/berend/Source/mitogen/mitogen/service.py", line 519, in _on_service_call
     return invoker.invoke(method_name, kwargs, msg)
  File "/home/berend/Source/mitogen/mitogen/service.py", line 253, in invoke
    response = self._invoke(method_name, kwargs, msg)
  File "/home/berend/Source/mitogen/mitogen/service.py", line 239, in _invoke
    ret = method(**kwargs)
  File "/home/berend/Source/mitogen/ansible_mitogen/services.py", line 408, in get
    reraise(*result)
  File "/home/berend/Source/mitogen/ansible_mitogen/services.py", line 372, in _wait_or_start
    response = self._connect(key, spec, via=via)
  File "/home/berend/Source/mitogen/ansible_mitogen/services.py", line 336, in _connect
    candidate_temp_dirs=self._get_candidate_temp_dirs(),
  File "/home/berend/Source/mitogen/mitogen/parent.py", line 1121, in call
    return receiver.get().unpickle(throw_dead=False)
  File "/home/berend/Source/mitogen/mitogen/core.py", line 681, in get
    raise ChannelError(ChannelError.local_msg)
ChannelError: Channel closed by local end.

and then later Ansible notices it:

Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/ansible/executor/task_executor.py", line 139, in run
    res = self._execute()
  File "/usr/lib/python2.7/site-packages/ansible/executor/task_executor.py", line 577, in _execute
    result = self._handler.run(task_vars=variables)
  File "/home/berend/Source/mitogen/ansible_mitogen/mixins.py", line 116, in run
    return super(ActionModuleMixin, self).run(tmp, task_vars)
  File "/usr/lib/python2.7/site-packages/ansible/plugins/action/copy.py", line 387, in run
    result = super(ActionModule, self).run(tmp, task_vars)
  File "/usr/lib/python2.7/site-packages/ansible/plugins/action/__init__.py", line 97, in run
    self._make_tmp_path()
  File "/home/berend/Source/mitogen/ansible_mitogen/mixins.py", line 190, in _make_tmp_path
    self._connection._shell.tmpdir = self._connection.get_temp_dir()
  File "/home/berend/Source/mitogen/ansible_mitogen/connection.py", line 654, in get_temp_dir
    self._connect()
  File "/home/berend/Source/mitogen/ansible_mitogen/connection.py", line 673, in _connect
    self._connect_stack(stack)
  File "/home/berend/Source/mitogen/ansible_mitogen/connection.py", line 635, in _connect_stack
    stack=mitogen.utils.cast(list(stack)),
  File "/home/berend/Source/mitogen/mitogen/core.py", line 1238, in call_service
    return recv.get().unpickle()
  File "/home/berend/Source/mitogen/mitogen/core.py", line 595, in unpickle
    raise obj
CallError: mitogen.core.ChannelError: Channel closed by local end.
  File "/home/berend/Source/mitogen/mitogen/service.py", line 519, in _on_service_call
    return invoker.invoke(method_name, kwargs, msg)
  File "/home/berend/Source/mitogen/mitogen/service.py", line 253, in invoke
    response = self._invoke(method_name, kwargs, msg)
  File "/home/berend/Source/mitogen/mitogen/service.py", line 239, in _invoke
    ret = method(**kwargs)
  File "/home/berend/Source/mitogen/ansible_mitogen/services.py", line 408, in get
    reraise(*result)
  File "/home/berend/Source/mitogen/ansible_mitogen/services.py", line 372, in _wait_or_start
    response = self._connect(key, spec, via=via)
  File "/home/berend/Source/mitogen/ansible_mitogen/services.py", line 336, in _connect
    candidate_temp_dirs=self._get_candidate_temp_dirs(),
  File "/home/berend/Source/mitogen/mitogen/parent.py", line 1121, in call
    return receiver.get().unpickle(throw_dead=False)
  File "/home/berend/Source/mitogen/mitogen/core.py", line 681, in get
    raise ChannelError(ChannelError.local_msg)

Metadata

Metadata

Assignees

No one assigned

    Labels

    ansibleIssues relating to Mitogen for AnsiblebugCode feature that hinders desired execution outcomeos:wslWindows Subsystem for Linuxtarget:v0.2Bugs to be fixed in 0.2 stable seriesuser-reported

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions