Skip to content

Commit 2d84869

Browse files
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 to dodge the CoFaWorkflows fan-out fault that still faulted the orchestrator. 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 2d84869

2 files changed

Lines changed: 519 additions & 260 deletions

File tree

0 commit comments

Comments
 (0)