Skip to content

CI: conformance-smoke shards hit the 60-min timeout-minutes cap; slowest shard cancels and blocks merges #6456

Description

@proggeramlug

The conformance-smoke gap-suite shards have timeout-minutes: 60, and the slowest shard is running right up against it — intermittently (sometimes) or consistently (some PRs) exceeding 60 min and getting cancelled. Because conformance-smoke-complete requires every shard to succeed, one cancelled shard fails the whole check, blocking merges on green code.

Evidence (this week)

PR symptom
#6449 shard 1 cancelled at ~60 min on the original run, 2 reruns, AND a fresh commit — 4× consistently
#6452 shard 1 cancelled on original + rerun (2×)
#6444 a shard cancelled on the original run; a fresh full re-shard passed → borderline, not always-over
#6434, #6387 one shard cancelled at the cap while the other 7 passed

In every case the completed shards had zero untriaged failures — the code is fine; the shard just doesn't finish in 60 min.

Why it's not concurrency-cancellation

The cancellations happen on runs that were not superseded by a newer push (e.g. #6449's current head with nothing after it), and the durations sit at ~55–60 min (the timeout-minutes: 60 value), so these are job timeouts, not cancel-in-progress.

Cost

A rerun helps only when the shard is borderline (#6444). For a consistently-over shard (#6449) reruns never clear it, so the PR can't merge without an admin bypass. This is now a recurring per-PR tax.

Options

  1. Rebalance the 8 shards — the split is by test-name hash, so a few slow tests can pile onto one shard. Balance by measured duration, or split into more shards.
  2. Raise timeout-minutes for conformance-smoke (e.g. 60 → 90) as a stopgap.
  3. Speed up the slow testsCI: stop truncating gap-suite output, add per-test summary #796 (closed) noted an O(n²) normalize_output in the harness; if that's still in the diff path it inflates the slow shard.

Not blaming any single PR — this is CI-infra. Filing so it's tracked rather than absorbed as rerun friction. Related: the chronic cargo-test 120-min-cap timeouts.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugConfirmed defect or regressiontoolingDeveloper tooling, CI, tests, or release infrastructuretriagedMaintainer reviewed; type, scope, and next step are clear

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions