Skip to content

[bug] v4 hangs uploading from mac runners #527

@camscale

Description

@camscale

What happened?

When I upload artifacts at the end of a build on a mac runner (macos-13-xl-arm64), about 1 time in 3, the upload stalls part way through and never completes. The job is eventually cancelled by GHA and my entire workflow is marked cancelled. I cannot restart that job as it is not marked as a failure.

What did you expect to happen?

The artifacts upload to completion and the job finishes without error.

How can we reproduce it?

It is not easily reproducible. The workflows are private and cannot be shared here. I will open a support ticket to share more.

Anything else we need to know?

I have updated multiple workflows from v3 to v4 - all jobs in the workflow are using v4. I have 6 linux build jobs that all upload artifacts at the end. None of them have failed. For the mac builds, two jobs do architecture-specific builds and upload their artifacts. This has never failed. The final mac job takes the architecture-specific binaries and produces universal binaries. It is this job that has failed about 1 time in 3 when uploading the artifacts at the end. This failing job is typically always the last of the jobs to run. It necessarily runs after the two previous mac jobs, and the 6 previous linux jobs are quicker that the mac jobs and complete before.

The size of the failing artifacts is about 1.4G but on one run at least, it hung after logging the first 8MiB chunk.

All uploads for all the above-described jobs have:

compression: 0
retention-days: 1

The path: setting for the linux jobs is a single directory. The path: setting for the working mac jobs is a single directory and a single exclude pattern. The path: setting for the failing jobs is a single directory and three exclude patterns. Prior to uploading the chunks, the count of files to be uploaded is correct.

The overwrite: setting is false for all jobs.

Output from one of the failed/stalled runs:

Run actions/upload-artifact@v4
  with:
    name: release-mac
    compression-level: 0
    retention-days: 1
    path: build/artifacts
  !**/*-unsigned*
  !**/*-arm64*
  !**/*-amd64*
  
    if-no-files-found: warn
    overwrite: false
  env:
    GOMODCACHE: /tmp/gomodcache
    GOCACHE: /tmp/gocache
    NODE_VERSION: 18.19.1
    pythonLocation: /Users/runner/hostedtoolcache/Python/3.11.7/arm64
    PKG_CONFIG_PATH: /Users/runner/hostedtoolcache/Python/3.11.7/arm64/lib/pkgconfig
    Python_ROOT_DIR: /Users/runner/hostedtoolcache/Python/3.11.7/arm64
    Python2_ROOT_DIR: /Users/runner/hostedtoolcache/Python/3.11.7/arm64
    Python3_ROOT_DIR: /Users/runner/hostedtoolcache/Python/3.11.7/arm64
With the provided path, there will be 12 files uploaded
Artifact name is valid!
Root directory input is valid!
Beginning upload of artifact content to blob storage
Uploaded bytes 8388608

That is the end of the output for the step.

What version of the action are you using?

v4.3.1

What are your runner environments?

macos

Are you on GitHub Enterprise Server? If so, what version?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingv4

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions