LearnNewsExamplesServices
Frontmatter
id19078
titleThe e2e engine shards outgrew the five-minute step ceiling again
stateClosed
labels
bugaitestingregressionbuild
assigneesneo-opus-grace
createdAtSep 23, 2026, 3:05 AM
updatedAtSep 23, 2026, 3:36 AM
githubUrlhttps://github.com/neomjs/neo/issues/19078
authorneo-opus-grace
commentsCount1
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtSep 23, 2026, 3:36 AM

The e2e engine shards outgrew the five-minute step ceiling again

Closed v13.2.0/archive-v13-2-0-chunk-22 bugaitestingregressionbuild
neo-opus-grace
neo-opus-grace commented on Sep 23, 2026, 3:05 AM

Context

e2e-engine (1/2) failed three times today with The action 'Run e2e (engine tier)' has timed out after 5 minutes, each time after its tests passed (119 passed, none failed):

Sweeps:

  • Live latest-open sweep: the latest 20 open issues at 2026-09-23T01:05:37Z hold no equivalent.
  • A2A in-flight sweep: no claim on this surface in the last 30 messages.
  • Memory Core and own-assignment sweeps: the only prior art is #18895 / #18896. The third-shard change @neo-opus-ada measured on 09-21 rode #19045, which closed unmerged.

The Problem

#18896 split the tier into two shards on 09-18, each under the five-minute step budget. The tier has grown since.

Run e2e step durations, shard 1 / shard 2, in seconds, over the last ten runs that executed the tier:

Run Shard 1 / shard 2 (s)
dev push 633585423d 312 / 254
#19073, attempt 2 278 / 247
(eight earlier runs) 222/244 · 220/274 · 261/260 · 275/274 · 275/274 · 245/278 · 283/272

Most runs sit at 245–285 s, within 5–20 % of the ceiling, so runner variance alone crosses it. The red costs a runner and a rerun, and it teaches everyone that a red e2e check means "rerun". That habit is what #19039's instrument exists to break.

The Architectural Reality

  • .github/workflows/test-e2e.yml:9-12 states the policy: "A shard nearing it gets a sibling, never a higher ceiling: the ceiling is the wait every pull request pays."
  • :82-83: the matrix is shard: [1, 2] / shards: [2] for pull_request and push. A dispatch stays one shard, so a probe keeps its whole denominator.
  • :345-347: shard 1 alone emits the coverage summary, and the artifact name carries the shard index. Neither depends on the count.
  • No file outside the workflow names the e2e-engine (n/2) checks (git grep over .github, buildScripts, ai), and dev has no required status checks. Renamed checks break no protection rule.

The Fix

test-e2e.yml:82-83: '[1, 2]' → '[1, 2, 3]' and '[2]' → '[3]'. At today's size (≈ 530 s of test time) three shards run ≈ 180 s each, about 40 % under the ceiling.

Acceptance Criteria

  • AC-1: a pull_request run shows three e2e-engine (n/3) jobs; a dispatch still runs one shard.
  • AC-2: on this PR's own run, every shard's Run e2e step finishes under 240 s (80 % of the ceiling), and the three tallies (passed + skipped + failed) sum to the population a two-shard run on dev reports.
  • AC-3: shard 1 still emits the coverage summary, once.

Out of Scope

  • Raising the ceiling: the workflow header rules it out by design.
  • Making individual specs faster.

Decision Record impact

None. Aligned with #18895's budget decision.

Related

#18895 · #18896 · #19073 · #19074 · #19039

Origin Session ID: 19051047-2f38-4bf0-be51-efd6b957564d

Retrieval Hint: "e2e engine tier shard five-minute ceiling timed out after tests passed"

tobiu referenced in commit 5827f2f - "ci(e2e): the engine tier runs as three shards, each back under the five-minute step (#19078) (#19079) on Sep 23, 2026, 3:36 AM
tobiu closed this issue on Sep 23, 2026, 3:36 AM