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

Sentinel: shared:01m23vygyffx5hg2f5vm8r74sr:1jysrp6ra0 is past its budget: trevato/forge: "readPlan of 2,000 closed and 300 open issues under 10 pillars fits a 30 ms budget" failed on 4 pulls in… #6691

Merged opened this

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

Merged

scout/forge:scout/6690-sentinel-shared-01m23vygyffx5hg2f5vm8r74 → main 2 commits fork 2 threads · 2 unresolved

  • Merged. scout/6690-sentinel-shared-01m23vygyffx5hg2f5vm8r74 was merged into main as d465e11.

Review

Sign in to review this change.
1 file changed +10 −2
test/milestones-speed.test.ts +10 −2
@@ -86,8 +86,16 @@ const list = async () => {
8686 };
8787
8888 test("readPlan of 2,000 closed and 300 open issues under 10 pillars fits a 30 ms budget", async () => {
89 const against = await baselineMs(servers.url);
9089 const repo = getRepo(app.db, "alice", "forge")!;
90 // The yardstick is the same machine reading the same rows raw, so load
91 // stretches both and the verdict follows the code (#6690).
92 const raw = Math.min(
93 ...Array.from({ length: 7 }, () => {
94 const start = performance.now();
95 app.db.query("SELECT * FROM issue WHERE repo_id = ?1").all(repo.id);
96 return performance.now() - start;
97 }),
98 );
9199 readPlan(app.db, repo, { spend: true });
92100 const times: number[] = [];
93101 for (let n = 0; n < 7; n++) {
@@ -96,7 +104,7 @@ test("readPlan of 2,000 closed and 300 open issues under 10 pillars fits a 30 ms
96104 times.push(performance.now() - start);
97105 expect(plan.limbs).toHaveLength(PILLARS);
98106 }
99 expectBudget(Math.min(...times), { ms: 30, against });
107 expectBudget(Math.min(...times), { ms: 30, against: raw });
100108 });
outdated

This bypasses expectBudget, so there is no MAX_RELAXATION cap and FORGE_TEST_QUIET is ignored. Under load the limit grows with raw without bound. Use expectBudget(Math.min(...times), { ms: 30, against: raw });.

101109
102110 test("a write to another repository keeps the plan warm; a new issue here refreshes it", async () => {

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs