actions / actions/cache

cache restore timeouts - only on windows, only with larger (non-default) runner

Open
#1,441 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
5.6k
Forks
1.6k
PR merge metrics
No merged PRs in 30d

Description

in a private repo, we get timeouts trying to restore cache but only on windows and only if run with a non-standard larger runner.

  • linux
    • standard runner (linux-latest) - no timeouts
    • larger runner (ubuntu: 4 cores, 16GB mem, 150GB) - no timeouts
  • windows
    • standard runner (windows-latest) - no timeouts
    • larger runner (windows: 8 cores, 32GB mem, 300GB)- timeouts >= 50% of the tests

This appears to be a relatively low-level issue (maybe I'm reporting it in the wrong place) because the failure pattern is reproduced whether using actions/cache or buildjet/cache (i hoped that would fix the problem). When using either one, the pattern is the same - the cache is downloaded 100% and times out after that. The download completes in a few seconds.

This is definitely not an obvious path/configuration problem - the particular jobs that fail vary and they will all eventually succeed if rerun enough times - sometimes once, sometimes more.

Please advise on any course of action, including filing in issue in another repo.

Run actions/cache/restore@v4
  with:
    path: ./*
    key: node-Windows-20-7543a6b6e9742607c14ef5f335e2397480cc801a
    enableCrossOsArchive: false
    fail-on-cache-miss: false
    lookup-only: false
  env:
    HUSKY: 0
    NPM_VERSION: 9
Cache Size: ~98 MB (103249742 B)
"C:\Program Files\Git\usr\bin\tar.exe" -xf C:/a/_temp/daa494c4-eb25-4dc1-8206-fe5b790d519d/cache.tzst -P -C C:/a/node-mono/node-mono --force-local --use-compress-program "zstd -d"
Received 103545508 of 103545508 (100.0%), 97.7 MBs/sec
Error: The action 'Restore cache' has timed out after 2 minutes.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the actions/cache/restore@v4 restore path and the logged Windows tar extraction command, then compare behavior on standard and larger Windows runners. Reproduce the intermittent timeout with the reported cache size and compare it with buildjet/cache; done means the cache restores reliably without timing out after reaching 100%.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
ci-cd
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.