Bug - infra.osbuild.export_compose no space left on device
Opened this issue · 0 comments
Thulium-Drake commented
Hi there,
I'm running into an issue when downloading an image with the export_compose
module:
The task:
---
- name: 'Download result'
hosts: 'edge_image_builder'
tasks:
- name: 'Download result'
infra.osbuild.export_compose:
compose_id: 84e02a8f-3dc7-44a3-a6cf-0bdee7e0b187
dest: /var/cache/edge_result/84e02a8f-3dc7-44a3-a6cf-0bdee7e0b187.tar
When running the task above, I see the following error:
TASK [Download result] ***************************************************************************************************
fatal: [m-a15-01.rh.lab]: FAILED! => changed=false
msg: Failure downloading http://localhost/api/v1/compose/image/84e02a8f-3dc7-44a3-a6cf-0bdee7e0b187, [Errno 28] No space left on device
However, when running this 'by hand':
[root@m-a15-01 edge_result]# composer-cli compose image 84e02a8f-3dc7-44a3-a6cf-0bdee7e0b187
84e02a8f-3dc7-44a3-a6cf-0bdee7e0b187-commit.tar
[root@m-a15-01 edge_result]# ls -alh
total 2.4G
drwx------. 2 root root 61 Jul 3 18:53 .
drwxr-xr-x. 16 root root 4.0K Jul 3 17:21 ..
-rw-------. 1 root root 2.4G Jul 3 18:53 84e02a8f-3dc7-44a3-a6cf-0bdee7e0b187-commit.tar
I even made /tmp and /var/tmp bigger (in case the module wants to stash it there, there's plenty room everywhere:
[root@m-a15-01 edge_result]# df -h /var/tmp /var /tmp
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-var_tmp 12G 120M 12G 1% /var/tmp
/dev/mapper/rhel-var 110G 22G 89G 20% /var
/dev/mapper/rhel-tmp 12G 120M 12G 1% /tmp
What's going on?
The traceback:
TASK [Download result] ***************************************************************************************************
task path: /home/ansible/projects/rhlab/playbooks/.73190.edge_test_blueprints.yml:5
<m-a15-01.rh.lab> ESTABLISH SSH CONNECTION FOR USER: ansible
<m-a15-01.rh.lab> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="ansible"' -o ConnectTimeout=10 -o 'ControlPath="/home/ansible/.ansible/cp/aa78398323"' m-a15-01.rh.lab '/bin/sh -c '"'"'echo ~ansible && sleep 0'"'"''
<m-a15-01.rh.lab> (0, b'/home/ansible\n', b'')
<m-a15-01.rh.lab> ESTABLISH SSH CONNECTION FOR USER: ansible
<m-a15-01.rh.lab> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="ansible"' -o ConnectTimeout=10 -o 'ControlPath="/home/ansible/.ansible/cp/aa78398323"' m-a15-01.rh.lab '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo /home/ansible/.ansible/tmp `"&& mkdir "` echo /home/ansible/.ansible/tmp/ansible-tmp-1720025541.1307213-73206-214073774428352 `" && echo ansible-tmp-1720025541.1307213-73206-214073774428352="` echo /home/ansible/.ansible/tmp/ansible-tmp-1720025541.1307213-73206-214073774428352 `" ) && sleep 0'"'"''
<m-a15-01.rh.lab> (0, b'ansible-tmp-1720025541.1307213-73206-214073774428352=/home/ansible/.ansible/tmp/ansible-tmp-1720025541.1307213-73206-214073774428352\n', b'')
Using module file /home/ansible/projects/rhlab/collections/ansible_collections/infra/osbuild/plugins/modules/export_compose.py
<m-a15-01.rh.lab> PUT /home/ansible/.ansible/tmp/ansible-local-73197xflk251n/tmp7nqy944h TO /home/ansible/.ansible/tmp/ansible-tmp-1720025541.1307213-73206-214073774428352/AnsiballZ_export_compose.py
<m-a15-01.rh.lab> SSH: EXEC sftp -b - -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="ansible"' -o ConnectTimeout=10 -o 'ControlPath="/home/ansible/.ansible/cp/aa78398323"' '[m-a15-01.rh.lab]'
<m-a15-01.rh.lab> (0, b'sftp> put /home/ansible/.ansible/tmp/ansible-local-73197xflk251n/tmp7nqy944h /home/ansible/.ansible/tmp/ansible-tmp-1720025541.1307213-73206-214073774428352/AnsiballZ_export_compose.py\n', b'')
<m-a15-01.rh.lab> ESTABLISH SSH CONNECTION FOR USER: ansible
<m-a15-01.rh.lab> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="ansible"' -o ConnectTimeout=10 -o 'ControlPath="/home/ansible/.ansible/cp/aa78398323"' m-a15-01.rh.lab '/bin/sh -c '"'"'chmod u+x /home/ansible/.ansible/tmp/ansible-tmp-1720025541.1307213-73206-214073774428352/ /home/ansible/.ansible/tmp/ansible-tmp-1720025541.1307213-73206-214073774428352/AnsiballZ_export_compose.py && sleep 0'"'"''
<m-a15-01.rh.lab> (0, b'', b'')
<m-a15-01.rh.lab> ESTABLISH SSH CONNECTION FOR USER: ansible
<m-a15-01.rh.lab> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="ansible"' -o ConnectTimeout=10 -o 'ControlPath="/home/ansible/.ansible/cp/aa78398323"' -tt m-a15-01.rh.lab '/bin/sh -c '"'"'sudo -H -S -n -u root /bin/sh -c '"'"'"'"'"'"'"'"'echo BECOME-SUCCESS-ahjnzhpacfqvpbgrfwxmipujhtehysxr ; /usr/bin/python3 /home/ansible/.ansible/tmp/ansible-tmp-1720025541.1307213-73206-214073774428352/AnsiballZ_export_compose.py'"'"'"'"'"'"'"'"' && sleep 0'"'"''
Escalation succeeded
<m-a15-01.rh.lab> (1, b'\r\n{"failed": true, "msg": "Failure downloading http://localhost/api/v1/compose/image/84e02a8f-3dc7-44a3-a6cf-0bdee7e0b187, [Errno 28] No space left on device", "exception": " File \\"/tmp/ansible_infra.osbuild.export_compose_payload_f028mys7/ansible_infra.osbuild.export_compose_payload.zip/ansible_collections/infra/osbuild/plugins/module_utils/weldr.py\\", line 146, in fetch_file\\n fetch_temp_file.write(data)\\n File \\"/usr/lib64/python3.9/tempfile.py\\", line 478, in func_wrapper\\n return func(*args, **kwargs)\\n", "invocation": {"module_args": {"compose_id": "84e02a8f-3dc7-44a3-a6cf-0bdee7e0b187", "dest": "/var/cache/edge_result/84e02a8f-3dc7-44a3-a6cf-0bdee7e0b187.tar"}}}\r\n', b'Shared connection to m-a15-01.rh.lab closed.\r\n')
<m-a15-01.rh.lab> Failed to connect to the host via ssh: Shared connection to m-a15-01.rh.lab closed.
<m-a15-01.rh.lab> ESTABLISH SSH CONNECTION FOR USER: ansible
<m-a15-01.rh.lab> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="ansible"' -o ConnectTimeout=10 -o 'ControlPath="/home/ansible/.ansible/cp/aa78398323"' m-a15-01.rh.lab '/bin/sh -c '"'"'rm -f -r /home/ansible/.ansible/tmp/ansible-tmp-1720025541.1307213-73206-214073774428352/ > /dev/null 2>&1 && sleep 0'"'"''
<m-a15-01.rh.lab> (0, b'', b'')
The full traceback is:
File "/tmp/ansible_infra.osbuild.export_compose_payload_f028mys7/ansible_infra.osbuild.export_compose_payload.zip/ansible_collections/infra/osbuild/plugins/module_utils/weldr.py", line 146, in fetch_file
fetch_temp_file.write(data)
File "/usr/lib64/python3.9/tempfile.py", line 478, in func_wrapper
return func(*args, **kwargs)
fatal: [m-a15-01.rh.lab]: FAILED! => changed=false
invocation:
module_args:
compose_id: 84e02a8f-3dc7-44a3-a6cf-0bdee7e0b187
dest: /var/cache/edge_result/84e02a8f-3dc7-44a3-a6cf-0bdee7e0b187.tar
msg: Failure downloading http://localhost/api/v1/compose/image/84e02a8f-3dc7-44a3-a6cf-0bdee7e0b187, [Errno 28] No space left on device