You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 1cb15ab
Browse filesBrowse the repository at this point in the historyBrowse files
fix(webapp): make the snapshot store hard stop a flag and nothing else
The environment half of the hard stop converged over a rolling deploy
rather than a flag interval. For the length of that deploy the fleet is
mixed: a stopped process writes no transition, then a running one
asserts a head that was never written and forks. Every fork enqueues a
repair, and the repair restores the head but not the entries behind it.
A control whose own convergence manufactures the divergence it exists to
stop cannot be the way in.
The flag now converges in one flag interval. Boot refuses to start when
the retired variable is still set to 1, because a variable that no
longer halts anything leaves an operator believing the mirror is stopped
while it runs. A value of 0 carries no intent and is ignored.
The guaranteed-inert state remains an unconfigured host, which is
bootstrap config rather than an operational control.
// Checked before anything else, and it does not depend on the dial or the host. The variable no
39
+
// longer halts anything, so leaving it set means an operator believes the mirror is stopped while
40
+
// it is running. That is the one failure mode worse than not starting.
41
+
if(deps.legacyEnvHalt){
42
+
thrownewError(
43
+
"RUN_ENGINE_SNAPSHOT_STORE_HALT is set but no longer does anything; the hard stop is the snapshotStoreHalt feature flag. Set the flag, then unset this variable."
44
+
);
45
+
}
46
+
32
47
constpastOff=deps.mode!=="off";
33
48
// Configuration is validated as soon as a host is set, NOT only past off. The per-organisation
34
49
// override can put one organisation at dual-write while the deployment dial is still off, which is
@@ -199,6 +214,9 @@ export async function assertSnapshotStoreBootFromEnv(): Promise<void> {
199
214
ping: pingSweepClient,
200
215
evictionPolicy: readEvictionPolicy,
201
216
repairBound: ()=>!!getSnapshotRepairEnqueuer(),
217
+
// Read raw: the variable is out of the parsed env schema, and the point is to notice a value
0 commit comments