Issue
When I execute and Ansible lxc_container task, I get no error in Ansible but the tasks fails on the remote end with “Fatal Python error: PyMutex_Unlock: unlocking mutex that is not locked“
Pre-requisites:
- I’ve created a simple playbook to replicate the issue.
- LXC host running
- Debian 13 (13.0 Trixie)
- Python (3.13.5)
- LXC (1:6.0.4-4+b3)
- python3-lxc (1:5.0.0-2+b3)
- LXC container (also running Debian 13, but I’ve tried it with other versions such as bookworm and it has the same effect)
Playbook/Role:
- name: test container command
lxc_container:
name: ezra3
state: started
container_command: |
echo -e “Hello World\n” >/root/hello_world.txt
I’ve ran the playbook with -vvvv and can see the error in the output. I’ve then preserved the tmp files and executed it again manually on the lxc host.
root@martha1:~/.ansible/tmp$ python3 ansible-tmp-1755260077.5821028-8449-254242578688725/AnsiballZ_lxc_container.py
Fatal Python error: PyMutex_Unlock: unlocking mutex that is not locked
Python runtime state: initialized
Current thread 0x00007fe8bb3f6100 (most recent call first):
File "/tmp/ansible_lxc_container_payload_7dh2sfdk/ansible_lxc_container_payload.zip/ansible_collections/community/general/plugins/modules/lxc_container.py", line 934 in _execute_command
File "/tmp/ansible_lxc_container_payload_7dh2sfdk/ansible_lxc_container_payload.zip/ansible_collections/community/general/plugins/modules/lxc_container.py", line 1156 in _started
File "/tmp/ansible_lxc_container_payload_7dh2sfdk/ansible_lxc_container_payload.zip/ansible_collections/community/general/plugins/modules/lxc_container.py", line 1624 in run
File "/tmp/ansible_lxc_container_payload_7dh2sfdk/ansible_lxc_container_payload.zip/ansible_collections/community/general/plugins/modules/lxc_container.py", line 1744 in main
File "/tmp/ansible_lxc_container_payload_7dh2sfdk/ansible_lxc_container_payload.zip/ansible_collections/community/general/plugins/modules/lxc_container.py", line 1748 in <module>
File "<frozen runpy>", line 88 in _run_code
File "<frozen runpy>", line 98 in _run_module_code
File "<frozen runpy>", line 226 in run_module
File "/root/.ansible/tmp/ansible-tmp-1755260077.5821028-8449-254242578688725/AnsiballZ_lxc_container.py", line 122 in invoke_module
File "/root/.ansible/tmp/ansible-tmp-1755260077.5821028-8449-254242578688725/AnsiballZ_lxc_container.py", line 249 in _ansiballz_main
File "/root/.ansible/tmp/ansible-tmp-1755260077.5821028-8449-254242578688725/AnsiballZ_lxc_container.py", line 259 in <module>
Extension modules: _lxc (total: 1)
{"changed": true, "lxc_container": {"interfaces": ["eth0", "lo"], "ips": ["192.168.1.180", "fd40:5d5f:73d0:5a9a:1266:6aff:fee9:9a17"], "state": "running", "init_pid": 71820, "name": "ezra3"}, "invocation": {"module_args": {"name": "ezra3", "state": "started", "container_command": "echo -e \"Hello World\\n\" >/root/hello_world.txt\n", "template": "ubuntu", "backing_store": "dir", "vg_name": "lxc", "fs_type": "ext4", "fs_size": "5G", "container_log": false, "container_log_level": "INFO", "clone_snapshot": false, "archive": false, "archive_compression": "gzip", "template_options": null, "config": null, "thinpool": null, "directory": null, "zfs_root": null, "lv_name": "ezra3", "lxc_path": null, "container_config": null, "clone_name": null, "archive_path": null}}}
The exact same playbook works fine on an older Debian 12 (bookworm) host.