Skip to content

Preserve pending post-merge benchmark runs - #1138

Merged
helly25 merged 7 commits into
mainfrom
fix/preserve-pending-main-benchmarks
Nov 7, 2026
Merged

helly25 merged 7 commits into
mainfrom
fix/preserve-pending-main-benchmarks

Conversation

@helly25

@helly25 helly25 commented Nov 7, 2026 •

Copy link
Copy Markdown
Collaborator

Keep a separate post-merge benchmark run for each merge while other measurements are active. GitHub canceled a real pending main run because the default concurrency policy replaces it when a newer merge arrives.

AG;DR

The existing benchmarks-${{ github.ref }} workflow concurrency group now sets queue: max alongside cancel-in-progress: false. This serializes the same-ref measurements while retaining up to 100 pending runs. The default single policy cancels the previous pending run even though active-run cancellation is disabled.

The observed canceled run was 42354657340 for main merge 1278c89. The orchestrator recorded that cancellation followed the next merge's benchmark admission; no agent canceled it. This repair is separate from CPU-count agreement and publication queues.

A committed regression verifies the per-ref group, maximum queue and disabled active cancellation. Documentation describes the provider's 100-pending bound, unchanged revision identities and explicit backfill for previously missing revisions. See GitHub concurrency documentation.

Development verification: all 32 benchmark-history tests passed on macOS/Python 3.13 and Linux/Python 3.14.4; all 156 transferred Linux source hashes matched. The affected Bazel target executed and passed on macOS. Normal changed-file pre-commit (excluding local clang-tidy), actionlint, Trunk and git diff checks passed. Public-head CI remains required after integration.

The development patch was prepared against #1130. Public integration applies only its queue/test/documentation delta atop #1137, preserving that publication chain's newer regression tests and canonical tracking. #1130's independent after-fourth agreement decision is inherited from actual main and remains intact; it is not copied or reverted in this follow-up. Merge order is #1135, #1136, #1137, then this PR. This ancestry avoids creating another independent main root; it is not a hard API dependency. Ready parents must merge without waiting for their lone child.

The queue is finite. Overflow still cancels additional runs, and this change does not restore earlier canceled runs or rewrite existing queued workflow definitions. Existing data and all measurement commands, sampling, CPU choices, PR checks and publication policies remain unchanged. There is no runtime speedup claim.

Public integration and current qualification

#1135 through #1137 are merged. Current signed head f19ecbab6ca4924da578ccc193a2daf8f39db484 incorporates actual main 3b8a8a34e7e94ee088951b747466082471a3d78b. The normal combined merge resolves four repeated-ancestry/context conflicts while preserving every newer main blob outside this original five-file delta. The benchmark workflow differs from current main by exactly the original two added lines; the history test differs by exactly the original seven-line regression. Current fifth-candidate gating and stale-preview regressions, all newer canonical sections, precise exemptions and site mappings remain intact. Combined tree: 8bfa61a37f6d6c50af29cedd808c3778ed0059a1.

Normal signed commit and immediate push hooks, actionlint, table and diff checks passed. Normal merge hooks intentionally skip redundant Trunk; no local clang-tidy ran. After synchronization was pushed, all 33 integrated workflow/history tests passed under Python 3.13. Fresh own Test 42404154421 completed successfully on this actual pushed main-context head, including all ordinary checks, six initial shards, agreement, final best-seven-of-nine comparison and done; optional fourth/fifth candidates skipped normally. Exact predecessor-main Test 42403927061 also completed successfully. Earlier stacked-head checks do not establish current readiness.

The same old policy has now also automatically canceled main campaigns 42367122125 (ae8c5af3), 42378502027 (5d413a35) and 42398990564 (1f25ba6d), each before any job started. Together with the original 42354657340 example, these four exact revisions remain explicit benchmark-only recovery work; retained PR measurements and main coverage copies do not substitute for their missing main campaigns. No agent canceled any of these runs. Existing queued definitions cannot be rewritten by this change, and no historical measurement is deleted.

This is now the queue root, with #1139 as its immediate child. Merge it unchanged when ready, then synchronize that retargeted child.

Base automatically changed from fix/stale-preview-writer-admission to main November 7, 2026 18:58
@helly25
helly25 merged commit c997dc3 into main Nov 7, 2026
32 checks passed
@helly25
helly25 deleted the fix/preserve-pending-main-benchmarks branch November 7, 2026 19:51
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.

1 participant