Skip to content

[CI] Retry the baseline MLIR cache restore once - #1080

Merged
coderfeli merged 1 commit into
mainfrom
ci/baseline-cache-restore-retry
Aug 31, 2026
Merged

[CI] Retry the baseline MLIR cache restore once#1080
coderfeli merged 1 commit into
mainfrom
ci/baseline-cache-restore-retry

Conversation

@Phil-amd

Copy link
Copy Markdown
Member

Follow-up to #1071. A benchmark baseline was lost to a network fault, not to a missing cache entry.

What happened

On #1051 (run 33117631657), Restore baseline MLIR cache:

Received 1010827264 of 1396566653 (72.4%), 1.6 MBs/sec
##[warning]Failed to restore: Server failed to authenticate the request.
          Make sure the value of Authorization header is formed correctly including the signature.
Cache not found for input keys: mlir-install-Linux-X64-...-4087a417...

1396566653 is the exact size of the entry sitting at refs/heads/main:

ref created size last accessed
refs/heads/main 2026-08-27 11:50:16 1,396,566,653 2026-08-29 06:26

So the key was right, the scope was right, the entry was found and 72% downloaded — then the blob SAS auth failed and actions/cache reported it as a plain miss. The run fell back to building the baseline wheel against the PR MLIR, where a pin bump cannot compile, and the vs-main comparison was gone.

Same run, the PR-scoped shared entry (1.42 GB) downloaded fine, so this is intermittent rather than a systematic refusal. The signature is already on record for these runners: they are spread across regions, and Azure blob SAS is sensitive to clock skew and to proxies on the path.

The change

One retry on the baseline restore, gated on the first attempt missing. No cost when the first works. Both attempts get timeout-minutes: 25 so a stalled transfer cannot eat the job budget instead — at 1.6 MB/s a 1.4 GB restore already takes ~15 minutes.

What this does not fix

Restore shared MLIR cache has the same exposure, and failing there is more expensive: a 45-minute cold LLVM rebuild. That is pre-existing behaviour, out of scope here, and the durable fix is the one an earlier investigation landed for the test jobs — move off the cache auth path onto artifacts.

The baseline install is ~1.4 GB and these runners sit in different
regions, so the transfer is slow enough to be interrupted mid-flight:

    Received 1010827264 of 1396566653 (72.4%), 1.6 MBs/sec
    ##[warning]Failed to restore: Server failed to authenticate the
              request ... Authorization header ... signature.
    Cache not found for input keys: mlir-install-...-4087a417...

The entry existed and matched - 1396566653 bytes is its exact size - but
the blob SAS auth failed partway through, and actions/cache reports that
as a plain miss. The run then built the baseline wheel against the PR's
own MLIR, where it cannot compile, and lost the vs-main comparison to
what was really a network fault. Seen on PR #1051, run 33117631657; the
same signature is on record for these runners from an earlier
investigation.

Retry the restore once. It costs nothing when the first attempt works,
and both attempts carry a timeout so a hung transfer cannot eat the job
budget instead.
@coderfeli
coderfeli merged commit f3acad4 into main Aug 31, 2026
15 of 17 checks passed
@coderfeli
coderfeli deleted the ci/baseline-cache-restore-retry branch August 31, 2026 13:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants