Skip to content

build: increase random_benchmarks step timeout - #14326

Merged
kgryte merged 1 commit into
developfrom
philipp/ci-fix-random-benchmarks-timeout-2026-08-16
Aug 17, 2026
Merged

build: increase random_benchmarks step timeout#14326
kgryte merged 1 commit into
developfrom
philipp/ci-fix-random-benchmarks-timeout-2026-08-16

Conversation

@Planeshifter

Copy link
Copy Markdown
Member

Description

This pull request:

  • increases timeout-minutes from 60 to 90 on the "Run JavaScript and native add-on benchmarks" step in .github/workflows/random_benchmarks.yml.

Failing run: https://github.com/stdlib-js/stdlib/actions/runs/31916609719

Symptom: The action 'Run random benchmarks' has timed out after 60 minutes. — chronic, hitting the majority of recent nightly random_benchmarks runs on unrelated develop SHAs, not a one-off.

Root cause: with BUILD_ADDONS=1, each of the 50 randomly sampled packages triggers a native add-on clean+rebuild cycle (install-node-addons/clean-node-addons), and both targets pattern-match against the full package tree. That per-package overhead grows with total repository size even though RANDOM_SELECTION_SIZE itself stays fixed, so the aggregate step time creeps past the 60-minute budget over time.

Every observed failure hit the 60-minute wall exactly (the data is right-censored), so this is a pragmatic interim margin rather than a precisely sized fix — noted directly in the commit message. If 90 minutes also proves insufficient, the underlying per-package addon clean/rebuild + glob overhead should be addressed directly (e.g. caching or parallelizing add-on builds).

Related Issues

This pull request has the following related issues:

  • None.

Questions

No.

Other

Reviewer notes: one reviewer noted the observed failure count in the commit message ("22 of the last 30 runs") likely includes 1-2 runs that time out on the separate "Run C benchmarks" step rather than the JS step this PR targets; the qualitative conclusion (chronic, non-flaky, majority of runs) holds either way. Validated via three independent automated reviewers (correctness, regression scope, style/conventions) across two review cycles; round 1 caught a factual error in the root-cause citation (a reference to PR #12513 as "already applied" when it is actually still open/draft), which was corrected before this PR was opened. All three reviewers approved on round 2.

Checklist

Please ensure the following tasks are completed before submitting this pull request.

AI Assistance

  • Yes

  • No

  • Code generation (e.g., when writing an implementation or fixing a bug)

  • Test/benchmark generation

  • Documentation (including examples)

  • Research and understanding

Disclosure

This PR was proposed by Claude Code as part of an automated CI-failure investigation routine. The failure enumeration/clustering, root-cause analysis, the fix, and three-reviewer validation (two rounds, correctness/regression-scope/style) were produced by Claude Code. Final review and merge decision rest with the maintainers.


@stdlib-js/reviewers


Generated by Claude Code

The job `Run random benchmarks` on workflow `random_benchmarks` failed
on develop with `The action 'Run random benchmarks' has timed out
after 60 minutes.`, reproduced on 22 of the last 30 scheduled runs on
unrelated develop SHAs, and has not recovered on its own. Root cause:
the "Run JavaScript and native add-on benchmarks" step
(`BUILD_ADDONS=1`) runs `install-node-addons`/`clean-node-addons` for
each of the 50 randomly sampled packages; both targets pattern-match
against the full package tree and rebuild/clean a native add-on per
package, so the aggregate step time grows with total repository size
even though `RANDOM_SELECTION_SIZE` itself stays fixed at 50.

Every observed failure hit the 60-minute wall exactly (the data is
right-censored), so the true time required is unknown; this commit
raises the step timeout from 60 to 90 minutes as a pragmatic interim
margin, not a precisely sized fix. A structurally similar timeout
issue is separately proposed (unmerged, draft) in PR #12513 for the
sibling `run_affected_benchmarks` workflow. If 90 minutes also proves
insufficient, the underlying per-package addon clean/rebuild + glob
overhead should be addressed directly (e.g., caching or parallelizing
add-on builds) rather than raising the timeout again.

Ref: https://github.com/stdlib-js/stdlib/actions/runs/31916609719
@kgryte kgryte added the CI Issue or pull request specific to continuous integration environments. label Aug 17, 2026
@kgryte
kgryte marked this pull request as ready for review August 17, 2026 00:57
@kgryte
kgryte requested a review from a team August 17, 2026 00:57
@stdlib-bot stdlib-bot added the Needs Review A pull request which needs code review. label Aug 17, 2026
@kgryte kgryte changed the title build(workflows): increase random_benchmarks step timeout build: increase random_benchmarks step timeout Aug 17, 2026
@kgryte
kgryte merged commit ac7c904 into develop Aug 17, 2026
47 checks passed
@kgryte
kgryte deleted the philipp/ci-fix-random-benchmarks-timeout-2026-08-16 branch August 17, 2026 01:09
@stdlib-bot stdlib-bot removed the Needs Review A pull request which needs code review. label Aug 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI Issue or pull request specific to continuous integration environments.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants