What
Every runner a server integration test spawns now gets --disk-reserve 0,
built in one place (fixture.runnerCmd), with a comment saying why. Production
behavior is unchanged: the runner’s default stays 2G.
Why
t.TempDir() is under /tmp. In a CI job that is the runtime’s tmpfs, sized by
--container-tmpfs (1G), so a nested runner can never meet the 2G
--disk-reserve default and stops its job at the first one-second check.
TestKilledRunnerIsRequeued (sleep 3) and TestRunLogStreamsWhileTheJobRuns
were the two whose steps outlive that tick, which is why main’s test step
failed on a README-only commit.
The reserve bounds a host filesystem; a test’s throwaway directory is already
bounded by the tmpfs. ci/agent/disk_test.go keeps testing the check itself.
Checks
- Reproduced before the change in the
file:verifyimage with--tmpfs /tmp:size=1g: both tests failed with “below its 2.0 GiB reserve”. - Both tests pass with the change in the same 1 GiB
/tmp. go test -race -count=1 ./serverpasses in the same container../vole workflow run verifypasses locally.