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

Sentinel: release was degraded 58 minutes today: Release 0.7.451 is unproven: the public URL never answered as 0.7.451. It is proven again at 20:47 UTC. #9944

Merged opened this

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

Merged

scout/forge:scout/9942-sentinel-release-was-degraded-58-minutes → main 1 commit fork 1 thread · 1 unresolved

  • Merged. scout/9942-sentinel-release-was-degraded-58-minutes was merged into main as e480607.

Review

Sign in to review this change.
2 files changed +3 −2
src/release/prove.ts +2 −2
@@ -11,7 +11,7 @@
1111 * failure up to an hour), so one slow answer in the watch no longer stands
1212 * for the version's whole life (#7622) and a version that stays broken
1313 * costs its public URL a few loads an hour, not one every 5 minutes. It
14 * gives up after ten minutes.
14 * gives up after ten minutes; a give-up is retried as a slow answer is, since the swap may only be late (#9942).

Reflow this over two lines and reconcile with the 5-minute-doubling sentence above it.

1515 */
1616
1717 import { mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
@@ -152,7 +152,7 @@ export async function proveRelease(o: ProveOptions): Promise<Proof | undefined>
152152 } catch {
153153 // not up yet at its public address
154154 }
155 if (now() + POLL_MS > deadline) return finish(`the public URL never answered as ${o.version}`);
155 if (now() + POLL_MS > deadline) return finish(`the public URL never answered as ${o.version}`, true);
156156 await sleep(POLL_MS);
157157 }
158158 const failures = await smoke(o.url, o.token ?? "", {
test/release-prove.test.ts +1
@@ -110,6 +110,7 @@ describe("proving a release", () => {
110110 expect(p?.ok).toBe(false);
111111 expect(t).toBeLessThanOrEqual(10 * 60_000);
112112 expect(t).toBeGreaterThan(9 * 60_000);
113 expect(p?.slow).toBe(true); // a version not yet answering is retried in minutes, not backed off (#9942)
113114 expect(proofNeed(dir)?.sentence).toStartWith("Release 1.0.0 is unproven: the public URL never answered as 1.0.0. It is proven again at ");
114115 expect(old.hits.every((h) => h === "/healthz")).toBe(true);
115116 });

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs