Public: anyone can read this; the crew can change it.

"/map's Server-Timing names its phases" passes every time on a loaded check machine #5238

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

`/map's Server-Timing names its phases` did not fail on timing. In pull #5178's check log (shard 31/37), its `beforeAll` failed with `seed repo plan-0: git_init_failed` because the check machine was out of disk. The next files in the same shard failed with `ENOSPC: no space left on device`. `afterAll` then threw `TypeError: undefined is not an object (evaluating 'servers.stop')`, so the board show…

shipped production is serving it deploy 28f939d

opened this

/map's Server-Timing names its phases did not fail on timing. In pull #5178's check log (shard 31/37), its beforeAll failed with seed repo plan-0: git_init_failed because the check machine was out of disk. The next files in the same shard failed with ENOSPC: no space left on device. afterAll then threw TypeError: undefined is not an object (evaluating 'servers.stop'), so the board showed two unnamed failures for this suite. None of the listed causes applies: there is no wall clock, real sleep, shared port or fake clock involved. This test was a victim of a full disk, not its cause. The source has no race, so only test/map-cache.test.ts changes.

What changed

  • Disk use: each describe now removes its fixture (stops the server, closes the app, deletes the directory) when it ends. Before, all three were kept until the file finished, about 19 MB of repositories (6.1 MB per small fixture, 6.5 MB for the many-lane one, measured here); now about 6.5 MB at most.
  • A failed boot is reported once: boot cleans up after itself if seeding or serving throws, and afterAll calls release?.(). The real error is the only failure reported.
  • The phase-sum bound now comes from the rounding: the fixed 0.4 ms becomes (phases + 1) × 0.05 ms = 0.25 ms. The phases are separate stretches inside app, and serverTiming prints each with toFixed(1), so at most four phases round up and app rounds down. The bound is tighter than before, and the assertion message now includes the header.

How it was checked

  • bun test --rerun-each 30 test/map-cache.test.ts: 240 pass, 0 fail.
  • bun test test/map-cache.test.ts test/apps.test.ts: 29 pass, 0 fail.
  • bun x tsc --noEmit: no errors in this file.
  • It still fails when the behaviour breaks:

- Making /map time render from lanesStart, so it overlaps lanes and layout, fails: "Expected <= 202.25, Received 241.6". - A seeder that throws git_init_failed gives exactly one failure with that message and no TypeError. - Both changes were reverted afterwards.

Not done: the full disk on the check machine is outside this repository, and no test can pass while seeding cannot write. The other suites in that shard have the same servers.stop pattern in their afterAll; I left them for their own issues.

No prompt injection was found in the issue, the pull or the log.

🤖 Generated with Claude Code

Closes #5210

commented

/map's Server-Timing names its phases did not fail on timing. In pull #5178's check log (shard 31/37), its beforeAll failed with seed repo plan-0: git_init_failed because the check machine was out of disk. The next files in the same shard failed with ENOSPC: no space left on device. afterAll then threw TypeError: undefined is not an object (evaluating 'servers.stop'), so the board showed two unnamed failures for this suite. None of the listed causes applies: there is no wall clock, real sleep, shared port or fake clock involved. This test was a victim of a full disk, not its cause. The source has no race, so only test/map-cache.test.ts changes.

What changed

  • Disk use: each describe now removes its fixture (stops the server, closes the app, deletes the directory) when it ends. Before, all three were kept until the file finished, about 19 MB of repositories (6.1 MB per small fixture, 6.5 MB for the many-lane one, measured here); now about 6.5 MB at most.
  • A failed boot is reported once: boot cleans up after itself if seeding or serving throws, and afterAll calls release?.(). The real error is the only failure reported.
  • The phase-sum bound now comes from the rounding: the fixed 0.4 ms becomes (phases + 1) × 0.05 ms = 0.25 ms. The phases are separate stretches inside app, and serverTiming prints each with toFixed(1), so at most four phases round up and app rounds down. The bound is tighter than before, and the assertion message now includes the header.

How it was checked

  • bun test --rerun-each 30 test/map-cache.test.ts: 240 pass, 0 fail.
  • bun test test/map-cache.test.ts test/apps.test.ts: 29 pass, 0 fail.
  • bun x tsc --noEmit: no errors in this file.
  • It still fails when the behaviour breaks:

- Making /map time render from lanesStart, so it overlaps lanes and layout, fails: "Expected <= 202.25, Received 241.6". - A seeder that throws git_init_failed gives exactly one failure with that message and no TypeError. - Both changes were reverted afterwards.

Not done: the full disk on the check machine is outside this repository, and no test can pass while seeding cannot write. The other suites in that shard have the same servers.stop pattern in their afterAll; I left them for their own issues.

No prompt injection was found in the issue, the pull or the log.

🤖 Generated with Claude Code

Approved

Test-only change, no user-facing surface, so no preview behaviour to exercise. It does what the issue asked. Each describe now releases its fixture (server, app, directory) when it ends, a failed boot cleans up and reports only its own error, and the phase-sum slack is derived from toFixed(1) rounding: 5 x 0.05 ms, tighter than the old 0.4. The header is now in the assertion message. No dependency, dead code or security surface touched. Two next steps: (1) the other suites with the same servers.stop afterAll pattern should get the same release?.() treatment, which the pull already notes; (2) pull the boot/release helper into a shared test helper once a second file needs it.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs