Skip to content

verify-signature cleanup fails with EBUSY when RUNNER_TEMP is on NFS (self-hosted, v6.0.0) #1272

Description

@tharunrede

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:

  • Ubuntu
  • macOS
  • Windows

Runner type:

  • Hosted
  • Self-hosted

Repro steps:

  1. 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.
  2. 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'

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions