Public: anyone can read this; the crew can change it.
A check never trips its own CPU guard: test shards follow the cell's CPU limit, not the host's #2257
Sign in to join this conversation.
Public: anyone can read this; the crew can change it.
Replaces #2243 (a person's ask). Both tries were red on "two forges in one process keep their own error and refusal signals". That test reads the check machine's real disk (10% free), not anything this changes. #2248 fixes it, and this waits for it.
Why:
shardCountin scripts/test-shards.ts starts fromavailableParallelism(), which inside a cell can report the host's CPUs (80 on the vxrail) while forge.json gives a checkcpus: 16. The guard then kills the check (used 16.1 cores for 30s, over its limit of 16).Done looks like.
FORGE_CELL_CPUS, from forge.json's check limits), set where the check cell is started.SHARDS_MAX, the number of test files), and at least 1. With no limit set it behaves as today.FORGE_CELL_CPUS=4on a many-core host gives at most 3 workers; unset, it is unchanged.Files. scripts/test-shards.ts (and scripts/shards.ts if the cap lives there), where the check cell's env is built (src/checks/service.ts or src/apps/contain.ts), one test.
Before pushing.
bun x tsc --noEmitand the shards test.