Skip to content

Commit d32c13a

Browse files
committed
ci: raise the shard caps that cancelled three jobs at 90 minutes
The caps were the binding constraint again and the measured table has grown about 50% since they were set. `plan_shards.lua` on this tree reports linux 23925s, macos 16676s, windows 18435s, so `secs / 4200 + 1` asks for 6 / 4 / 5 while the caps clamped to 4 / 2 / 2. Windows at 18435s over two shards is roughly 150 minutes a shard, over the 90-minute job cap before a cold cache is considered at all. Observed rather than predicted. On this PR's pin move three shards were cancelled at exactly 90 minutes: `linux default 0/4`, `linux default 3/4` and `windows default 0/2`. The two linux shards passed on a re-run against the warm registry cache. The Windows one timed out AGAIN at 1h30m13s WITH the cache restored -- the pin change invalidates every member build, and that shard carries godot-cpp-m twice (9.5 and 10 minutes) plus opencv. linux 4 -> 6, windows 2 -> 5. macos stays at 2: it has never been cancelled, so raising it would be a prediction rather than a measurement, and the formula's 4 is there the day it is. The paragraph that set the previous caps is marked superseded rather than deleted, because it records the measurement that was true when it was written.
1 parent e99abbb commit d32c13a

1 file changed

Lines changed: 27 additions & 2 deletions

File tree

.github/workflows/validate.yml

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -679,13 +679,38 @@ jobs:
679679
# answer and leaves 16 minutes for a cold cache; 5 is there if that
680680
# stops being enough.
681681
#
682+
# SUPERSEDED 2026-09-06: it stopped being enough. The table is now
683+
# 23925s rather than 15891s, so the paragraph above describes a
684+
# measurement that no longer holds; see the dated block below the
685+
# concurrency note for what replaced it.
686+
#
682687
# This does cross the concurrency line the old comment drew: with two
683688
# toolchain legs linux now emits 8 jobs against a measured runner
684689
# concurrency of 3, so shards queue. Queuing is the right trade —
685690
# back-to-back shards still finish, a shard over the cap does not.
686-
ln=$(shards_for linux 4)
691+
# ── 2026-09-06: linux 4 -> 6, windows 2 -> 5 ────────────────────
692+
#
693+
# The caps were the binding constraint again, and the table has grown
694+
# about 50% since they were set. Measured with `plan_shards.lua` on
695+
# this tree: linux 23925s, macos 16676s, windows 18435s, so the
696+
# formula asks for 6 / 4 / 5 and was being clamped to 4 / 2 / 2.
697+
# Windows at 18435s over two shards is roughly 150 minutes a shard,
698+
# over the 90-minute job cap before a cold cache is even considered.
699+
#
700+
# Observed, not predicted. On the 2026.9.6.3 pin move (#361) three
701+
# shards were cancelled at exactly 90 minutes: `linux default 0/4`,
702+
# `linux default 3/4` and `windows default 0/2`. The two linux ones
703+
# passed on a re-run against the warm registry cache; the Windows one
704+
# timed out AGAIN at 1h30m13s with the cache restored, because the
705+
# pin change invalidates every MEMBER build and that shard carries
706+
# godot-cpp-m twice (9.5 and 10 minutes) plus opencv.
707+
#
708+
# macos stays at 2. It has never been cancelled, so raising it would
709+
# be a prediction rather than a measurement; the formula's 4 is there
710+
# the day it is.
711+
ln=$(shards_for linux 6)
687712
mn=$(shards_for macos 2)
688-
wn=$(shards_for windows 2)
713+
wn=$(shards_for windows 5)
689714
{
690715
printf '{"include":['
691716
# linux runs TWICE: once on mcpp's default toolchain and once on

0 commit comments

Comments
 (0)