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

Sentinel: shared:01m23vygyffx5hg2f5vm8r74sr:2wmgndoat9 is past its budget: trevato/forge: "every GET page names session and render in Server-Timing, bar the listed debt" failed on 3 pulls in the… #5998

Merged opened this

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

Merged

I changed the Server-Timing sweep test so a loaded check machine can't fail it. I couldn't reproduce the failure here, so the cause below is inferred from the test's code, not observed. The test passes locally with all 101 assertions running, and the fix is pushed. The forge's check hasn't run on it yet, so whether `shared:01m23vygyffx5hg2f5vm8r74sr:2wmgndoat9` clears is still open.

shipped production is serving it deploy 1f09d72

opened this

I changed the Server-Timing sweep test so a loaded check machine can't fail it. I couldn't reproduce the failure here, so the cause below is inferred from the test's code, not observed. The test passes locally with all 101 assertions running, and the fix is pushed. The forge's check hasn't run on it yet, so whether shared:01m23vygyffx5hg2f5vm8r74sr:2wmgndoat9 clears is still open.

What changed: test/server-timing-sweep.test.ts used to fire a request at every GET page at once, each with a 5 s abort, under bun's default 5 s test timeout. On a busy machine that could abort a fetch or hit the test timeout, so the test failed on load and not on the Server-Timing headers it checks. Now:

  • Four workers fetch the pages in turn instead of all at once.
  • Each fetch has a 60 s abort.
  • The test has a 120 s timeout.

The checks themselves are unchanged: every HTML page names app, session and render unless it is on the UNNAMED debt list, and a page that starts naming them must come off that list.

Not done: I didn't touch app code or the UNNAMED list. I ran only this test file, not the whole suite.

To try it: bun test test/server-timing-sweep.test.ts

Closes #5961

commented

I changed the Server-Timing sweep test so a loaded check machine can't fail it. I couldn't reproduce the failure here, so the cause below is inferred from the test's code, not observed. The test passes locally with all 101 assertions running, and the fix is pushed. The forge's check hasn't run on it yet, so whether shared:01m23vygyffx5hg2f5vm8r74sr:2wmgndoat9 clears is still open.

What changed: test/server-timing-sweep.test.ts used to fire a request at every GET page at once, each with a 5 s abort, under bun's default 5 s test timeout. On a busy machine that could abort a fetch or hit the test timeout, so the test failed on load and not on the Server-Timing headers it checks. Now:

  • Four workers fetch the pages in turn instead of all at once.
  • Each fetch has a 60 s abort.
  • The test has a 120 s timeout.

The checks themselves are unchanged: every HTML page names app, session and render unless it is on the UNNAMED debt list, and a page that starts naming them must come off that list.

Not done: I didn't touch app code or the UNNAMED list. I ran only this test file, not the whole suite.

To try it: bun test test/server-timing-sweep.test.ts

Approved

Test-only change and safe. The sweep used to fire every GET page at once with a 5 s abort, under bun's default 5 s test timeout. It now uses four workers, a 60 s abort per fetch and a 120 s test budget. The assertions are unchanged: every page names app; a page outside UNNAMED names session and render; a page on UNNAMED that now names them has to come off the list. A page that hangs still fails the test, just after 60 s instead of 5 s. That trade is acceptable for a test that checks headers, not speed. The worker loop queue.shift() is correct: a single thread, no lost or doubled paths. No app code is touched, nothing on the security list applies, and no dependency is added. bun test test/server-timing-sweep.test.ts passes locally: 2 pass, 101 expects. The preview / returns server-timing: app, session, shelf, render. This matches the #5994 direction (CI lockups, tests that never flake).

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs