Skip to content

Orphaned Files on Job Failure Break Future Jobs on self-hosted runners #14

@exp-hc

Description

@exp-hc

When an error occurs during execution, a collection is orphaned and breaks future runs until cleaned up manually. This is on a self-hosted runner which works fine until an error occurs.

The following snippet is from the failed job:

Run echo ::group::Extracting the collection metadata from "'galaxy.yml'"...
Extracting the collection metadata from 'galaxy.yml'...
Run import yaml
/home/github/actions-runner/_work/_temp/01dd8358-3030-4067-9a41-b4b8a3b66d60.py:5: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
  collection_meta = yaml.load(galaxy_yml)
Run echo ::endgroup::

Run echo ::group::Move "'expedient.smc'" collection to ansible_collections/expedient/smc...
Move 'expedient.smc' collection to ansible_collections/expedient/smc...
Run set -x ; mkdir -pv "ansible_collections/expedient" ; mv -v ".tmp-ansible-collection-checkout" "ansible_collections/expedient/smc" ; set +x
+ mkdir -pv ansible_collections/expedient
+ mv -v .tmp-ansible-collection-checkout ansible_collections/expedient/smc
mv: cannot move '.tmp-ansible-collection-checkout' to 'ansible_collections/expedient/smc/.tmp-ansible-collection-checkout': Directory not empty
Error: Process completed with exit code 1.

Here is the original failure leading to the orphaned files

Installing collected packages: ansible-core
    Running setup.py install for ansible-core: started
    ERROR: Command errored out with exit status 1:
    Running setup.py install for ansible-core: finished with status 'error'
     command: /home/github/actions-runner/_work/_tool/Python/3.9.9/x64/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-042atxsa/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-042atxsa/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-anvypspo/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/github/.local/include/python3.9/ansible-core
         cwd: /tmp/pip-req-build-042atxsa/
    Complete output (27 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-req-build-042atxsa/setup.py", line 120, in <module>
        _validate_install_ansible_core()
      File "/tmp/pip-req-build-042atxsa/setup.py", line 91, in _validate_install_ansible_core
        raise RuntimeError(
    RuntimeError:
    
        ****************************************************************************
    
        Cannot install ansible-core with a pre-existing ansible-base==2.10.15.post0
        installation.
    
        Installing ansible-core with ansible-2.9 or older, or ansible-base-2.10
        currently installed with pip is known to cause problems. Please uninstall
        ansible-base and install the new version:
    
            pip uninstall ansible-base
            pip install ansible-core
    
        If you want to skip the conflict checks and manually resolve any issues
        afterwards, set the ANSIBLE_SKIP_CONFLICT_CHECK environment variable:
    
            ANSIBLE_SKIP_CONFLICT_CHECK=1 pip install ansible-core
    
        ****************************************************************************
    
    ----------------------------------------
ERROR: Command errored out with exit status 1: /home/github/actions-runner/_work/_tool/Python/3.9.9/x64/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-042atxsa/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-042atxsa/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-anvypspo/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/github/.local/include/python3.9/ansible-core Check the logs for full command output.
Error: Process completed with exit code 1.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinggood first issueGood for newcomers

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions