willhallonline / docker-ansible

Ansible inside Docker containers: Alpine, Ubuntu, Rocky & Debian with Ansible 2.16, 2.15, 2.14, 2.13, 2.12, 2.11, 2.10 and 2.9 + Mitogen
https://www.willhallonline.co.uk/project/docker/docker-ansible/
MIT License
392 stars 137 forks source link

Version 2.15-ubuntu-22.04 unable to run playbook #69

Closed aisuhua closed 8 months ago

aisuhua commented 1 year ago

When run in 2.15-ubuntu-22.04, some errors occur.

$ docker run --rm -it -v $(pwd):/ansible willhallonline/ansible:2.15-ubuntu-22.04 ansible-playbook playbook.yaml

PLAY [Change to multi user target] *******************************************
ERROR! Unexpected Exception, this is probably a bug: can't start new thread
to see the full traceback, use -vvv

That ok when run in 2.15.2-alpine-3.16.


$ docker run --rm -it -v $(pwd):/ansible willhallonline/ansible:2.15.2-alpine-3.16 ansible-playbook playbook.yaml

PLAY [Change to multi user target] *******************************************

TASK [Gathering Facts] 
...
aisuhua commented 1 year ago

-vvv output

$ docker run --rm -it -v $(pwd):/ansible willhallonline/ansible:2.15-ubuntu-22.04 ansible-playbook playbook.yaml -vvv
ansible-playbook [core 2.15.2]
  config file = /ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.10/dist-packages/ansible
  ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/bin/ansible-playbook
  python version = 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0] (/usr/bin/python3)
  jinja version = 3.1.2
  libyaml = True
Using /ansible/ansible.cfg as config file
host_list declined parsing /ansible/hosts.ini as it did not pass its verify_file() method
script declined parsing /ansible/hosts.ini as it did not pass its verify_file() method
auto declined parsing /ansible/hosts.ini as it did not pass its verify_file() method
yaml declined parsing /ansible/hosts.ini as it did not pass its verify_file() method
Parsed /ansible/hosts.ini inventory source with ini plugin
Skipping callback 'default', as we already have a stdout callback.
Skipping callback 'minimal', as we already have a stdout callback.
Skipping callback 'oneline', as we already have a stdout callback.

PLAYBOOK: playbook.yaml ************************************************************************************************************************************************************************************
1 plays in playbook.yaml

PLAY [Change to multi user target] *************************************************************************************************************************************************************************
ERROR! Unexpected Exception, this is probably a bug: can't start new thread
the full traceback was:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/ansible/cli/__init__.py", line 659, in cli_executor
    exit_code = cli.run()
  File "/usr/local/lib/python3.10/dist-packages/ansible/cli/playbook.py", line 156, in run
    results = pbex.run()
  File "/usr/local/lib/python3.10/dist-packages/ansible/executor/playbook_executor.py", line 190, in run
    result = self._tqm.run(play=play)
  File "/usr/local/lib/python3.10/dist-packages/ansible/executor/task_queue_manager.py", line 327, in run
    strategy = strategy_loader.get(new_play.strategy, self)
  File "/usr/local/lib/python3.10/dist-packages/ansible/plugins/loader.py", line 855, in get
    return self.get_with_context(name, *args, **kwargs).object
  File "/usr/local/lib/python3.10/dist-packages/ansible/plugins/loader.py", line 906, in get_with_context
    obj.__init__(instance, *args, **kwargs)  # pylint: disable=unnecessary-dunder-call
  File "/usr/local/lib/python3.10/dist-packages/ansible/plugins/strategy/linear.py", line 52, in __init__
    super().__init__(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/ansible/plugins/strategy/__init__.py", line 270, in __init__
    self._results_thread.start()
  File "/usr/lib/python3.10/threading.py", line 935, in start
    _start_new_thread(self._bootstrap, ())
RuntimeError: can't start new thread
willhallonline commented 8 months ago

This is likely resolved. I have made quite a few changes since this was discovered. Closing, but please re-open if issue remains.