Commit d6f7c8c
committed
feat(cli): refined e2e wave staggering (per-platform wave sizes, all waves gated)
A more aggressive variant of the time-barrier wave staggering, run as a
parallel experiment. Instead of letting wave 1 fan out immediately,
EVERY wave — including wave 1 — is now gated behind a synthetic barrier
build that only sleeps, so nothing dispatches the instant `upb`/
`build_windows` completes.
Wave sizes are now per-platform: Linux shards are grouped into waves of
30 (5 waves), Windows shards into waves of 20 (7 waves). Each wave k is
gated by a barrier `l_wave_barrier_k` / `w_wave_barrier_k` whose only
command sleeps `k * 300` seconds (5m, 10m, 15m, ...). Every shard depends
ONLY on its barrier; no shard depends directly on `upb`/`build_windows`
anymore and no shard depends on another shard. All barriers depend solely
on `upb` (Linux) / `build_windows`+`upb` (Windows) — never on another
barrier — so they start in parallel and the stagger comes purely from the
differing sleep durations, with no serial completion chaining.
Linux barriers run on BUILD_GENERAL1_SMALL; Windows barriers inherit the
default Windows container (SMALL is invalid for Windows). Barriers are
excluded from `wait_for_ids.json` since they are synthetic and must not be
polled by aggregate_e2e_reports; the wait list is computed before the
barriers are injected.
Verified by regenerating e2e_workflow_generated.yml: 12 barriers (5
Linux, 7 Windows), per-wave shard counts 30/30/30/30/16 (Linux) and
20x6/4 (Windows), wave-1 shards gated by their barrier (0 shards depend
directly on upb), 0 shard-to-shard deps, 0 barrier-to-barrier deps, and
the yaml parses cleanly.
---
Prompt: refined wave staggering v2 (30 linux/20 windows, all waves gated, 5/10/15 staggers)1 parent aa9d525 commit d6f7c8c
2 files changed
Lines changed: 519 additions & 260 deletions
0 commit comments