Commit b0cd084
test+ci: give the race job a ceiling that matches the work, and stop it spending the budget on arithmetic (#27)
* test: stop the JPEG XL ladder sweep spending the race job's budget on arithmetic
The race detector job went red on the JPEG XL branch, and it was a timeout
rather than a race: the guard package passed the 25 minutes Go is given, in a
test that happened to be running when the alarm went off.
The margin was thin before this format arrived and that is the part worth
recording. Measured on the runner: 21m35s on main before JPEG XL, against a
stated 25m and a job ceiling of 30m. After the merge the same job came in at
20m15s, so main is green - the failing run was a slower runner, not a
different tree. A three minute margin is not a margin.
What this changes is the one test that could give the budget back without
giving anything else up. TestEveryJxlRungStillFitsInsideItsDeclaredCeiling
sweeps every rung across seeds and label lengths, which is 528 encodes with an
encoder several times slower than the AVIF one. Measured locally under -race:
80s of the 102s all four JPEG XL guards cost. It now sweeps two seeds instead
of eight when the detector is on, and says so on the way past.
The reason that is not a gate quietly loosened: the race job exists to find
data races, and this test walks the same single threaded arithmetic whatever
it is handed, so the seeds it drops buy no race coverage at all. The full
eight seed sweep still runs on all three operating system jobs, which is where
a ceiling below what its rung produces would show - and the thorough version,
all 256 seeds, is tools/probes/jxlladder. Measured after: 102s to 54s under
-race, and the off-race sweep is unchanged at eight seeds.
This buys headroom rather than fixing the underlying thinness. Whether 25m
against a 30m job is still the right ceiling for a package that renders 25
screens, builds two binaries and now runs two borrowed encoders is a separate
question, and the owner's.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* ci: give the race job a ceiling that matches the work it now does
Raises the race detector's limits from 25m under a 30m job to 40m under 45m,
which is the owner's call and the other half of the change beside it.
Not because a run went red. Because the margin had already gone and the reds
were the symptom. Measured on the runner across four consecutive runs: 21m35s
on main before JPEG XL, a timeout on the JPEG XL branch, 20m15s on main after
it merged, and a timeout on the dependency bump. Two out of four, and no data
race reported in any of them - a limit that decides on how busy the runner
happens to be is telling you about the runner, not about the code.
21m35s against 25m was never a margin, and that predates JPEG XL. What this
package holds today is twenty four formats, two of them running a borrowed
encoder, twenty five screens and two binaries, and the 25m was chosen when it
held less.
The gap between the two numbers is kept on purpose. Go's limit stays below the
job's so a slow run fails as a test, with the list of what was still running,
rather than as a killed job with no output - which is the reason the number was
stated here in the first place, on 2026-08-25.
The cheap half of the answer is the commit before this one: the JPEG XL ladder
sweep stopped spending the budget on arithmetic that finds no races, 102s to
54s under -race. This half stops the work being shaved to fit a ceiling nobody
had remeasured.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>1 parent 60e3c1c commit b0cd084
2 files changed
Lines changed: 40 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
625 | 625 | | |
626 | 626 | | |
627 | 627 | | |
628 | | - | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
629 | 631 | | |
630 | 632 | | |
631 | 633 | | |
| |||
678 | 680 | | |
679 | 681 | | |
680 | 682 | | |
681 | | - | |
682 | | - | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
683 | 704 | | |
684 | 705 | | |
685 | 706 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
89 | 89 | | |
90 | 90 | | |
91 | 91 | | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
92 | 101 | | |
93 | 102 | | |
94 | 103 | | |
| |||
99 | 108 | | |
100 | 109 | | |
101 | 110 | | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
102 | 117 | | |
103 | 118 | | |
104 | 119 | | |
105 | 120 | | |
106 | | - | |
| 121 | + | |
107 | 122 | | |
108 | 123 | | |
109 | 124 | | |
| |||
0 commit comments