Description:
setup-java's GPG signature verification creates a temporary gpg-agent home directory under RUNNER_TEMP (verify-signature-gpg-home-XXXXXX), then deletes it immediately after verifying. When RUNNER_TEMP is backed by an NFS mount, this cleanup intermittently fails with an EBUSY: resource busy or locked error on the .nfsXXXXXXXX silly-rename placeholder file, causing the step to fail even though signature verification itself succeeded.
Task version:
actions/setup-java@dd06d9cba3e5552c54d9f8ea23572deb30010f7c v6.0.0
Platform:
Runner type:
Repro steps:
- Run a self-hosted runner in Kubernetes container mode (actions-runner-controller / gha-runner-scale-set) with
RUNNER_TEMP mapped to a work volume backed by an NFS provisioner.
- Use
actions/setup-java@v6.0.0 with distribution: temurin and java-version: '21' (signature verification enabled).
Expected behavior:
Signature verification succeeds and the temporary GPG home directory is cleaned up without error, regardless of the underlying filesystem backing RUNNER_TEMP.
Actual behavior:
The step fails intermittently with:
Error: Failed to verify signature for Microsoft Build of OpenJDK version 21.0.11. Signature URL: https://aka.ms/download-jdk/microsoft-jdk-21.0.11-linux-x64.tar.gz.sig. Error: File was unable to be removed Error: EBUSY: resource busy or locked, unlink '/__w/_temp/verify-signature-gpg-home-UzV31p/.nfs0058000008bd292700033630'
Description:
setup-java's GPG signature verification creates a temporary gpg-agent home directory under RUNNER_TEMP (verify-signature-gpg-home-XXXXXX), then deletes it immediately after verifying. When RUNNER_TEMP is backed by an NFS mount, this cleanup intermittently fails with an EBUSY: resource busy or locked error on the .nfsXXXXXXXX silly-rename placeholder file, causing the step to fail even though signature verification itself succeeded.
Task version:
actions/setup-java@dd06d9cba3e5552c54d9f8ea23572deb30010f7c v6.0.0Platform:
Runner type:
Repro steps:
RUNNER_TEMPmapped to a work volume backed by an NFS provisioner.actions/setup-java@v6.0.0withdistribution: temurinandjava-version: '21'(signature verification enabled).Expected behavior:
Signature verification succeeds and the temporary GPG home directory is cleaned up without error, regardless of the underlying filesystem backing
RUNNER_TEMP.Actual behavior:
The step fails intermittently with: