orez 0.4.25 → 0.4.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +95 -14
- package/dist/index.js.map +1 -1
- package/dist/worker/zero-cache-do-sqlite.d.ts +39 -0
- package/dist/worker/zero-cache-do-sqlite.d.ts.map +1 -0
- package/dist/worker/zero-cache-do-sqlite.js +64 -0
- package/dist/worker/zero-cache-do-sqlite.js.map +1 -0
- package/dist/worker/zero-cache-replica-repair.d.ts +66 -0
- package/dist/worker/zero-cache-replica-repair.d.ts.map +1 -0
- package/dist/worker/zero-cache-replica-repair.js +185 -0
- package/dist/worker/zero-cache-replica-repair.js.map +1 -0
- package/dist/worker/zero-sql-write-circuit.d.ts +46 -0
- package/dist/worker/zero-sql-write-circuit.d.ts.map +1 -0
- package/dist/worker/zero-sql-write-circuit.js +128 -0
- package/dist/worker/zero-sql-write-circuit.js.map +1 -0
- package/dist/zero-health.d.ts +8 -0
- package/dist/zero-health.d.ts.map +1 -0
- package/dist/zero-health.js +20 -0
- package/dist/zero-health.js.map +1 -0
- package/package.json +2 -2
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAmDpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AA0DjD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAC1E,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC7E,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAA;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAwDvE,wBAAsB,aAAa,CAAC,SAAS,GAAE,OAAO,CAAC,cAAc,CAAM;;;;;;;;;;;;;;GA66B1E"}
|
package/dist/index.js
CHANGED
|
@@ -26,6 +26,7 @@ import { installChangeTracking } from './replication/change-tracker.js';
|
|
|
26
26
|
import { resetReplicationState } from './replication/handler.js';
|
|
27
27
|
import { applySqliteMode, cleanupShim, formatNativeBootstrapInstructions, hasMissingNativeBinarySignature, inspectNativeSqliteBinary, resolveSqliteMode, resolveSqliteModeConfig, } from './sqlite-mode/index.js';
|
|
28
28
|
import { enableZeroReplicaCheckpoint } from './zero-checkpoint-patch.js';
|
|
29
|
+
import { probeZeroCacheHttp } from './zero-health.js';
|
|
29
30
|
import { disableZeroLitestreamRestore } from './zero-litestream-patch.js';
|
|
30
31
|
function ensureDoBackendNamespace(dataDir) {
|
|
31
32
|
const marker = resolve(dataDir, 'do-backend-namespace');
|
|
@@ -520,6 +521,7 @@ export async function startZeroLite(overrides = {}) {
|
|
|
520
521
|
let shuttingDown = false;
|
|
521
522
|
let resetInProgress = false;
|
|
522
523
|
let liveLogRecoveryQueued = false;
|
|
524
|
+
let zeroHttpHealthRecovering = false;
|
|
523
525
|
const resetFile = resolve(config.dataDir, 'orez.resetting');
|
|
524
526
|
const resetZeroState = async (mode) => {
|
|
525
527
|
if (resetInProgress) {
|
|
@@ -729,7 +731,11 @@ export async function startZeroLite(overrides = {}) {
|
|
|
729
731
|
// on alone.
|
|
730
732
|
if (watched !== zeroCacheProcess)
|
|
731
733
|
return;
|
|
732
|
-
if (shuttingDown ||
|
|
734
|
+
if (shuttingDown ||
|
|
735
|
+
resetInProgress ||
|
|
736
|
+
zeroStopExpected ||
|
|
737
|
+
zeroHttpHealthRecovering ||
|
|
738
|
+
code === null)
|
|
733
739
|
return;
|
|
734
740
|
const tail = zeroCacheProcess?.__orezTail;
|
|
735
741
|
const details = tail?.length ? tail.join('\n') : '';
|
|
@@ -782,9 +788,94 @@ export async function startZeroLite(overrides = {}) {
|
|
|
782
788
|
});
|
|
783
789
|
};
|
|
784
790
|
installCrashWatcher();
|
|
791
|
+
const ZERO_HTTP_HEALTH_INTERVAL_MS = 5000;
|
|
792
|
+
const ZERO_HTTP_HEALTH_TIMEOUT_MS = 1000;
|
|
793
|
+
const ZERO_HTTP_HEALTH_FAILURES_BEFORE_RECOVERY = 3;
|
|
794
|
+
const ZERO_HTTP_HEALTH_WINDOW_MS = 5 * 60_000;
|
|
795
|
+
const ZERO_HTTP_HEALTH_RECOVERY_BUDGET = 5;
|
|
796
|
+
let zeroHttpHealthFailures = 0;
|
|
797
|
+
let zeroHttpHealthProbeInFlight = false;
|
|
798
|
+
let zeroHttpHealthRecoveryTimes = [];
|
|
799
|
+
let zeroHttpHealthTimer;
|
|
800
|
+
const runZeroHttpHealthProbe = async () => {
|
|
801
|
+
if (config.skipZeroCache ||
|
|
802
|
+
zeroHttpHealthProbeInFlight ||
|
|
803
|
+
zeroHttpHealthRecovering ||
|
|
804
|
+
shuttingDown ||
|
|
805
|
+
resetInProgress ||
|
|
806
|
+
zeroStopExpected ||
|
|
807
|
+
liveLogRecoveryQueued)
|
|
808
|
+
return;
|
|
809
|
+
const watched = zeroCacheProcess;
|
|
810
|
+
if (!isChildProcessRunning(watched)) {
|
|
811
|
+
zeroHttpHealthFailures = 0;
|
|
812
|
+
return;
|
|
813
|
+
}
|
|
814
|
+
zeroHttpHealthProbeInFlight = true;
|
|
815
|
+
try {
|
|
816
|
+
const result = await probeZeroCacheHttp(zeroInternalPort, ZERO_HTTP_HEALTH_TIMEOUT_MS);
|
|
817
|
+
if (watched !== zeroCacheProcess)
|
|
818
|
+
return;
|
|
819
|
+
if (shuttingDown || resetInProgress || zeroStopExpected || liveLogRecoveryQueued)
|
|
820
|
+
return;
|
|
821
|
+
if (result.ok) {
|
|
822
|
+
zeroHttpHealthFailures = 0;
|
|
823
|
+
return;
|
|
824
|
+
}
|
|
825
|
+
zeroHttpHealthFailures++;
|
|
826
|
+
log.debug.orez(`zero-cache HTTP health probe failed ` +
|
|
827
|
+
`(${zeroHttpHealthFailures}/${ZERO_HTTP_HEALTH_FAILURES_BEFORE_RECOVERY}): ` +
|
|
828
|
+
result.reason);
|
|
829
|
+
if (zeroHttpHealthFailures < ZERO_HTTP_HEALTH_FAILURES_BEFORE_RECOVERY) {
|
|
830
|
+
return;
|
|
831
|
+
}
|
|
832
|
+
zeroHttpHealthFailures = 0;
|
|
833
|
+
const now = Date.now();
|
|
834
|
+
zeroHttpHealthRecoveryTimes = zeroHttpHealthRecoveryTimes.filter((t) => now - t < ZERO_HTTP_HEALTH_WINDOW_MS);
|
|
835
|
+
zeroHttpHealthRecoveryTimes.push(now);
|
|
836
|
+
if (zeroHttpHealthRecoveryTimes.length > ZERO_HTTP_HEALTH_RECOVERY_BUDGET) {
|
|
837
|
+
log.orez('zero-cache HTTP liveness kept failing after repeated recoveries — giving up');
|
|
838
|
+
return;
|
|
839
|
+
}
|
|
840
|
+
zeroHttpHealthRecovering = true;
|
|
841
|
+
const attempt = zeroHttpHealthRecoveryTimes.length;
|
|
842
|
+
log.orez(`zero-cache HTTP liveness failed (${result.reason}) — restarting zero-cache ` +
|
|
843
|
+
`(${attempt}/${ZERO_HTTP_HEALTH_RECOVERY_BUDGET}, CVR preserved)`);
|
|
844
|
+
try {
|
|
845
|
+
await restartZeroCache();
|
|
846
|
+
log.orez('zero-cache HTTP liveness recovery successful');
|
|
847
|
+
installCrashWatcher();
|
|
848
|
+
}
|
|
849
|
+
catch (err) {
|
|
850
|
+
log.orez(`zero-cache HTTP liveness restart failed (${err?.message || err}) — falling back to full reset`);
|
|
851
|
+
try {
|
|
852
|
+
await resetZeroState('full');
|
|
853
|
+
log.orez('zero-cache HTTP liveness full-reset recovery successful');
|
|
854
|
+
installCrashWatcher();
|
|
855
|
+
}
|
|
856
|
+
catch (resetErr) {
|
|
857
|
+
log.orez(`zero-cache HTTP liveness full-reset recovery failed: ${resetErr?.message || resetErr}`);
|
|
858
|
+
}
|
|
859
|
+
}
|
|
860
|
+
finally {
|
|
861
|
+
zeroHttpHealthRecovering = false;
|
|
862
|
+
}
|
|
863
|
+
}
|
|
864
|
+
finally {
|
|
865
|
+
zeroHttpHealthProbeInFlight = false;
|
|
866
|
+
}
|
|
867
|
+
};
|
|
868
|
+
if (!config.skipZeroCache) {
|
|
869
|
+
zeroHttpHealthTimer = setInterval(() => {
|
|
870
|
+
void runZeroHttpHealthProbe();
|
|
871
|
+
}, ZERO_HTTP_HEALTH_INTERVAL_MS);
|
|
872
|
+
zeroHttpHealthTimer.unref?.();
|
|
873
|
+
}
|
|
785
874
|
const stop = async () => {
|
|
786
875
|
log.debug.orez('shutting down');
|
|
787
876
|
shuttingDown = true;
|
|
877
|
+
if (zeroHttpHealthTimer)
|
|
878
|
+
clearInterval(zeroHttpHealthTimer);
|
|
788
879
|
stopCheckpoint();
|
|
789
880
|
stopVacuum();
|
|
790
881
|
httpProxyServer?.close();
|
|
@@ -1101,7 +1192,6 @@ async function startZeroCache(config, logStore, sqliteMode = resolveSqliteMode(c
|
|
|
1101
1192
|
}
|
|
1102
1193
|
async function waitForZeroCache(config, zeroProcess, timeoutMs = 60000, sqliteMode = resolveSqliteMode(config.disableWasmSqlite)) {
|
|
1103
1194
|
const start = Date.now();
|
|
1104
|
-
const url = `http://127.0.0.1:${config.zeroPort}/`;
|
|
1105
1195
|
const checkProcessAlive = () => {
|
|
1106
1196
|
if (zeroProcess && zeroProcess.exitCode !== null) {
|
|
1107
1197
|
const tail = zeroProcess.__orezTail;
|
|
@@ -1112,18 +1202,9 @@ async function waitForZeroCache(config, zeroProcess, timeoutMs = 60000, sqliteMo
|
|
|
1112
1202
|
// phase 1: wait for HTTP health check
|
|
1113
1203
|
while (Date.now() - start < timeoutMs) {
|
|
1114
1204
|
checkProcessAlive();
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
const res = await fetch(url, { signal: controller.signal });
|
|
1119
|
-
clearTimeout(timer);
|
|
1120
|
-
// zero may return 404 on "/" while still being healthy.
|
|
1121
|
-
if (res.ok || res.status === 404)
|
|
1122
|
-
break;
|
|
1123
|
-
}
|
|
1124
|
-
catch {
|
|
1125
|
-
// not ready yet
|
|
1126
|
-
}
|
|
1205
|
+
const result = await probeZeroCacheHttp(config.zeroPort, 1000);
|
|
1206
|
+
if (result.ok)
|
|
1207
|
+
break;
|
|
1127
1208
|
await new Promise((r) => setTimeout(r, 500));
|
|
1128
1209
|
}
|
|
1129
1210
|
if (Date.now() - start < timeoutMs) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloudflare DO-SQLite compatibility for a zero-cache embed.
|
|
3
|
+
*
|
|
4
|
+
* zero-cache's embedded SQLite issues storage-engine statements (VACUUM, ATTACH,
|
|
5
|
+
* journal/checkpoint PRAGMAs) that a Durable Object's `ctx.storage.sql` does NOT
|
|
6
|
+
* own — the DO manages journaling + checkpointing itself and rejects them with
|
|
7
|
+
* SQLITE_AUTH, which aborts `/sync`. these helpers make those statements no-op so
|
|
8
|
+
* the embed boots unmodified, while every real read/write passes straight
|
|
9
|
+
* through. pure over the minimal `exec` shape (no `@cloudflare/...` types),
|
|
10
|
+
* tested in zero-cache-do-sqlite.test.ts.
|
|
11
|
+
*/
|
|
12
|
+
interface DoExecSql {
|
|
13
|
+
exec(sql: string, ...params: unknown[]): unknown;
|
|
14
|
+
[key: string]: unknown;
|
|
15
|
+
}
|
|
16
|
+
interface DoStorageCtx {
|
|
17
|
+
storage: {
|
|
18
|
+
sql: DoExecSql;
|
|
19
|
+
transactionSync?: (...args: unknown[]) => unknown;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export declare const DO_FORBIDDEN_SQLITE: RegExp;
|
|
23
|
+
export declare function isDoForbiddenSqlite(sql: unknown): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* patch `sql.exec` in place so EVERY caller (the embed, its sqlite shim,
|
|
26
|
+
* transactionSync callbacks) skips DO-forbidden statements instead of throwing
|
|
27
|
+
* SQLITE_AUTH. idempotent per handle.
|
|
28
|
+
*/
|
|
29
|
+
export declare function installDoForbiddenSqliteGuard(sql: DoExecSql): void;
|
|
30
|
+
/**
|
|
31
|
+
* wrap a DO's `storage.sql` for the zero-cache embed: DO-forbidden statements
|
|
32
|
+
* no-op, and `transactionSync` is bound through when the platform exposes it.
|
|
33
|
+
*/
|
|
34
|
+
export declare function doSqliteStorage(ctx: DoStorageCtx): {
|
|
35
|
+
exec: (sql: string, ...params: unknown[]) => unknown;
|
|
36
|
+
transactionSync: ((...args: unknown[]) => unknown) | undefined;
|
|
37
|
+
};
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=zero-cache-do-sqlite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zero-cache-do-sqlite.d.ts","sourceRoot":"","sources":["../../src/worker/zero-cache-do-sqlite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,UAAU,SAAS;IACjB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IAChD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,UAAU,YAAY;IACpB,OAAO,EAAE;QACP,GAAG,EAAE,SAAS,CAAA;QACd,eAAe,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAA;KAClD,CAAA;CACF;AAGD,eAAO,MAAM,mBAAmB,QAC+H,CAAA;AAE/J,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEzD;AAID;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAgBlE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,YAAY,GAAG;IAClD,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,OAAO,CAAA;IACpD,eAAe,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,GAAG,SAAS,CAAA;CAC/D,CAqBA"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloudflare DO-SQLite compatibility for a zero-cache embed.
|
|
3
|
+
*
|
|
4
|
+
* zero-cache's embedded SQLite issues storage-engine statements (VACUUM, ATTACH,
|
|
5
|
+
* journal/checkpoint PRAGMAs) that a Durable Object's `ctx.storage.sql` does NOT
|
|
6
|
+
* own — the DO manages journaling + checkpointing itself and rejects them with
|
|
7
|
+
* SQLITE_AUTH, which aborts `/sync`. these helpers make those statements no-op so
|
|
8
|
+
* the embed boots unmodified, while every real read/write passes straight
|
|
9
|
+
* through. pure over the minimal `exec` shape (no `@cloudflare/...` types),
|
|
10
|
+
* tested in zero-cache-do-sqlite.test.ts.
|
|
11
|
+
*/
|
|
12
|
+
// storage-engine statements the DO rejects (it owns journaling/checkpointing).
|
|
13
|
+
export const DO_FORBIDDEN_SQLITE = /^\s*(?:VACUUM\b|ATTACH\b|PRAGMA\s+(?:journal_mode|synchronous|page_size|mmap_size|wal_checkpoint|wal_autocheckpoint|locking_mode|temp_store|cache_size)\b)/i;
|
|
14
|
+
export function isDoForbiddenSqlite(sql) {
|
|
15
|
+
return typeof sql === 'string' && DO_FORBIDDEN_SQLITE.test(sql);
|
|
16
|
+
}
|
|
17
|
+
const GUARD_MARK = '__orezDoSqliteGuarded';
|
|
18
|
+
/**
|
|
19
|
+
* patch `sql.exec` in place so EVERY caller (the embed, its sqlite shim,
|
|
20
|
+
* transactionSync callbacks) skips DO-forbidden statements instead of throwing
|
|
21
|
+
* SQLITE_AUTH. idempotent per handle.
|
|
22
|
+
*/
|
|
23
|
+
export function installDoForbiddenSqliteGuard(sql) {
|
|
24
|
+
if (!sql || sql[GUARD_MARK])
|
|
25
|
+
return;
|
|
26
|
+
const rawExec = sql.exec.bind(sql);
|
|
27
|
+
sql.exec = (statement, ...params) => {
|
|
28
|
+
if (isDoForbiddenSqlite(statement)) {
|
|
29
|
+
return {
|
|
30
|
+
toArray: () => [],
|
|
31
|
+
rowsRead: 0,
|
|
32
|
+
rowsWritten: 0,
|
|
33
|
+
columnNames: [],
|
|
34
|
+
[Symbol.iterator]: () => [][Symbol.iterator](),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
return rawExec(statement, ...params);
|
|
38
|
+
};
|
|
39
|
+
sql[GUARD_MARK] = true;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* wrap a DO's `storage.sql` for the zero-cache embed: DO-forbidden statements
|
|
43
|
+
* no-op, and `transactionSync` is bound through when the platform exposes it.
|
|
44
|
+
*/
|
|
45
|
+
export function doSqliteStorage(ctx) {
|
|
46
|
+
const rawExec = ctx.storage.sql.exec.bind(ctx.storage.sql);
|
|
47
|
+
const exec = (sql, ...params) => {
|
|
48
|
+
if (isDoForbiddenSqlite(sql)) {
|
|
49
|
+
return {
|
|
50
|
+
toArray: () => [],
|
|
51
|
+
rowsRead: 0,
|
|
52
|
+
[Symbol.iterator]: () => [][Symbol.iterator](),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
return rawExec(sql, ...params);
|
|
56
|
+
};
|
|
57
|
+
return {
|
|
58
|
+
exec,
|
|
59
|
+
transactionSync: typeof ctx.storage.transactionSync === 'function'
|
|
60
|
+
? ctx.storage.transactionSync.bind(ctx.storage)
|
|
61
|
+
: undefined,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=zero-cache-do-sqlite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zero-cache-do-sqlite.js","sourceRoot":"","sources":["../../src/worker/zero-cache-do-sqlite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAcH,+EAA+E;AAC/E,MAAM,CAAC,MAAM,mBAAmB,GAC9B,6JAA6J,CAAA;AAE/J,MAAM,UAAU,mBAAmB,CAAC,GAAY;IAC9C,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACjE,CAAC;AAED,MAAM,UAAU,GAAG,uBAAuB,CAAA;AAE1C;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAAC,GAAc;IAC1D,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC;QAAE,OAAM;IACnC,MAAM,OAAO,GAAI,GAAG,CAAC,IAAuD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACtF,GAAG,CAAC,IAAI,GAAG,CAAC,SAAiB,EAAE,GAAG,MAAiB,EAAE,EAAE;QACrD,IAAI,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,OAAO;gBACL,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;gBACjB,QAAQ,EAAE,CAAC;gBACX,WAAW,EAAE,CAAC;gBACd,WAAW,EAAE,EAAE;gBACf,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;aAC/C,CAAA;QACH,CAAC;QACD,OAAO,OAAO,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,CAAA;IACtC,CAAC,CAAA;IACD,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,CAAA;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,GAAiB;IAI/C,MAAM,OAAO,GACX,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IACjB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACvB,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,GAAG,MAAiB,EAAE,EAAE;QACjD,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO;gBACL,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;gBACjB,QAAQ,EAAE,CAAC;gBACX,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;aAC/C,CAAA;QACH,CAAC;QACD,OAAO,OAAO,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAA;IAChC,CAAC,CAAA;IACD,OAAO;QACL,IAAI;QACJ,eAAe,EACb,OAAO,GAAG,CAAC,OAAO,CAAC,eAAe,KAAK,UAAU;YAC/C,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;YAC/C,CAAC,CAAC,SAAS;KAChB,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* self-heal for a zero-cache embed's DO-SQLite replica.
|
|
3
|
+
*
|
|
4
|
+
* zero-cache snapshots its publication into a replica (here, the Durable
|
|
5
|
+
* Object's `ctx.storage.sql`, `ZERO_REPLICA_FILE=':do-sqlite:'`). on a real
|
|
6
|
+
* Postgres that replica lives in a normal file with normal transaction
|
|
7
|
+
* semantics; inside a DO the sqlite shim makes BEGIN/COMMIT/ROLLBACK no-ops
|
|
8
|
+
* (the object auto-commits per I/O turn) and any boot can be killed across an
|
|
9
|
+
* await (the 120s ready-timeout, an eviction, an OOM). that combination leaves
|
|
10
|
+
* three distinct corrupt-replica states that each wedge `/sync` permanently
|
|
11
|
+
* until healed. these functions detect and repair each one; every one of them
|
|
12
|
+
* fixed a specific production incident (see the per-function comments).
|
|
13
|
+
*
|
|
14
|
+
* the replica is *derived* data — the upstream rows live in the SQL DO and are
|
|
15
|
+
* untouched by any wipe here, so dropping the replica only forces zero-cache to
|
|
16
|
+
* re-run initial sync. pure logic over minimal `exec`/`get`/`put` shapes (no
|
|
17
|
+
* `@cloudflare/...` types); the decision logic is unit-tested in
|
|
18
|
+
* zero-cache-replica-repair.test.ts against simulated replica states. consumers
|
|
19
|
+
* call these from their ZeroCacheDO boot sequence with their own storage key +
|
|
20
|
+
* log prefix.
|
|
21
|
+
*/
|
|
22
|
+
export interface ReplicaSqlResult {
|
|
23
|
+
toArray(): Array<Record<string, unknown>>;
|
|
24
|
+
}
|
|
25
|
+
export interface ReplicaSqlStorage {
|
|
26
|
+
exec(sql: string, ...params: unknown[]): ReplicaSqlResult;
|
|
27
|
+
}
|
|
28
|
+
export interface ReplicaKvStorage {
|
|
29
|
+
get(key: string): Promise<unknown>;
|
|
30
|
+
put(key: string, value: unknown): Promise<unknown>;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* run a SQL statement against the SQL-DO backend (pg-over-DO `/exec`), returning
|
|
34
|
+
* its `{ rows, error }` body. consumers wrap their backend fetch in this shape;
|
|
35
|
+
* an `{ error }` is surfaced (never treated as "no rows", which would silently
|
|
36
|
+
* disable the guards).
|
|
37
|
+
*/
|
|
38
|
+
export type BackendExec = (sql: string, params?: unknown[]) => Promise<{
|
|
39
|
+
rows?: Array<Record<string, unknown>>;
|
|
40
|
+
error?: string;
|
|
41
|
+
}>;
|
|
42
|
+
/**
|
|
43
|
+
* drop every non-internal table from the replica SQLite. SQLite internals
|
|
44
|
+
* (`sqlite_*`) and Cloudflare's DO tables (`_cf_*`) are skipped: the DO storage
|
|
45
|
+
* authorizer rejects DROP on `_cf_*` with SQLITE_AUTH, which would abort the
|
|
46
|
+
* whole reset. returns the number of tables dropped.
|
|
47
|
+
*/
|
|
48
|
+
export declare function dropReplicaTables(sql: ReplicaSqlStorage): number;
|
|
49
|
+
export declare function resetReplicaIfTableSetChanged(sql: ReplicaSqlStorage, storage: ReplicaKvStorage, opts: {
|
|
50
|
+
schemaVersion: string;
|
|
51
|
+
tables?: Iterable<string>;
|
|
52
|
+
/** durable storage key the last-applied tag is persisted under. */
|
|
53
|
+
tagKey: string;
|
|
54
|
+
}): Promise<void>;
|
|
55
|
+
export declare function repairPartialReplicaInit(sql: ReplicaSqlStorage, opts?: {
|
|
56
|
+
logPrefix?: string;
|
|
57
|
+
}): void;
|
|
58
|
+
export declare function resetReplicaIfChangeLogPoisoned(sql: ReplicaSqlStorage, backendExec: BackendExec, opts: {
|
|
59
|
+
appId: string;
|
|
60
|
+
logPrefix?: string;
|
|
61
|
+
}): Promise<void>;
|
|
62
|
+
export declare function clearChangeStreamerStateIfReplicaUninitialized(sql: ReplicaSqlStorage, backendExec: BackendExec, opts: {
|
|
63
|
+
appId: string;
|
|
64
|
+
logPrefix?: string;
|
|
65
|
+
}): Promise<void>;
|
|
66
|
+
//# sourceMappingURL=zero-cache-replica-repair.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zero-cache-replica-repair.d.ts","sourceRoot":"","sources":["../../src/worker/zero-cache-replica-repair.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAC1C;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAA;CAC1D;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAClC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CACnD;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,CACxB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,OAAO,EAAE,KACf,OAAO,CAAC;IAAE,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAEvE;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM,CAUhE;AAWD,wBAAsB,6BAA6B,CACjD,GAAG,EAAE,iBAAiB,EACtB,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE;IACJ,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;IACzB,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAA;CACf,GACA,OAAO,CAAC,IAAI,CAAC,CAWf;AAeD,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,iBAAiB,EACtB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAChC,IAAI,CA8BN;AASD,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,iBAAiB,EACtB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1C,OAAO,CAAC,IAAI,CAAC,CAoDf;AASD,wBAAsB,8CAA8C,CAClE,GAAG,EAAE,iBAAiB,EACtB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1C,OAAO,CAAC,IAAI,CAAC,CA8Bf"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* self-heal for a zero-cache embed's DO-SQLite replica.
|
|
3
|
+
*
|
|
4
|
+
* zero-cache snapshots its publication into a replica (here, the Durable
|
|
5
|
+
* Object's `ctx.storage.sql`, `ZERO_REPLICA_FILE=':do-sqlite:'`). on a real
|
|
6
|
+
* Postgres that replica lives in a normal file with normal transaction
|
|
7
|
+
* semantics; inside a DO the sqlite shim makes BEGIN/COMMIT/ROLLBACK no-ops
|
|
8
|
+
* (the object auto-commits per I/O turn) and any boot can be killed across an
|
|
9
|
+
* await (the 120s ready-timeout, an eviction, an OOM). that combination leaves
|
|
10
|
+
* three distinct corrupt-replica states that each wedge `/sync` permanently
|
|
11
|
+
* until healed. these functions detect and repair each one; every one of them
|
|
12
|
+
* fixed a specific production incident (see the per-function comments).
|
|
13
|
+
*
|
|
14
|
+
* the replica is *derived* data — the upstream rows live in the SQL DO and are
|
|
15
|
+
* untouched by any wipe here, so dropping the replica only forces zero-cache to
|
|
16
|
+
* re-run initial sync. pure logic over minimal `exec`/`get`/`put` shapes (no
|
|
17
|
+
* `@cloudflare/...` types); the decision logic is unit-tested in
|
|
18
|
+
* zero-cache-replica-repair.test.ts against simulated replica states. consumers
|
|
19
|
+
* call these from their ZeroCacheDO boot sequence with their own storage key +
|
|
20
|
+
* log prefix.
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* drop every non-internal table from the replica SQLite. SQLite internals
|
|
24
|
+
* (`sqlite_*`) and Cloudflare's DO tables (`_cf_*`) are skipped: the DO storage
|
|
25
|
+
* authorizer rejects DROP on `_cf_*` with SQLITE_AUTH, which would abort the
|
|
26
|
+
* whole reset. returns the number of tables dropped.
|
|
27
|
+
*/
|
|
28
|
+
export function dropReplicaTables(sql) {
|
|
29
|
+
const rows = sql.exec("SELECT name FROM sqlite_master WHERE type='table'").toArray();
|
|
30
|
+
let dropped = 0;
|
|
31
|
+
for (const row of rows) {
|
|
32
|
+
const name = String(row.name);
|
|
33
|
+
if (name.startsWith('sqlite_') || name.startsWith('_cf_'))
|
|
34
|
+
continue;
|
|
35
|
+
sql.exec('DROP TABLE IF EXISTS "' + name.replaceAll('"', '""') + '"');
|
|
36
|
+
dropped++;
|
|
37
|
+
}
|
|
38
|
+
return dropped;
|
|
39
|
+
}
|
|
40
|
+
// zero-cache snapshots the publication's tables into its replica ONCE during
|
|
41
|
+
// initial sync and never picks up a table OR COLUMN added afterward — ALTER only
|
|
42
|
+
// feeds the change stream, not the existing snapshot. so a redeploy that evolves
|
|
43
|
+
// the schema leaves the persisted replica stuck on the old shape and every
|
|
44
|
+
// client fails SchemaVersionNotSupported (2026-06-10: file.title/description
|
|
45
|
+
// columns — table set unchanged, so a tables-only tag never reset). key the tag
|
|
46
|
+
// on schemaVersion (a hash of the full deploy-time DDL batch — any
|
|
47
|
+
// table/column/type change) plus the table set, and wipe the replica on change
|
|
48
|
+
// so zero-cache re-runs initial sync over the full publication.
|
|
49
|
+
export async function resetReplicaIfTableSetChanged(sql, storage, opts) {
|
|
50
|
+
const tag = JSON.stringify([opts.schemaVersion, [...(opts.tables || [])].sort()]);
|
|
51
|
+
const lastTag = await storage.get(opts.tagKey);
|
|
52
|
+
// reset whenever the tag differs — including the no-baseline case (lastTag
|
|
53
|
+
// undefined), which covers a DO whose replica was initialized by a deploy that
|
|
54
|
+
// predates this tracking. on a brand-new DO the replica is empty so the drop
|
|
55
|
+
// loop is a no-op; on a stale one it forces a full re-sync.
|
|
56
|
+
if (lastTag !== tag) {
|
|
57
|
+
dropReplicaTables(sql);
|
|
58
|
+
}
|
|
59
|
+
await storage.put(opts.tagKey, tag);
|
|
60
|
+
}
|
|
61
|
+
// repair a PARTIALLY-INITIALIZED replica left by an interrupted embed boot.
|
|
62
|
+
// zero-cache's runSchemaMigrations wraps initial-sync (createReplicationStateTables
|
|
63
|
+
// + the versionHistory row write) in one BEGIN EXCLUSIVE/COMMIT, expecting it to
|
|
64
|
+
// be atomic. but on a CF DO the sqlite shim makes BEGIN/COMMIT/ROLLBACK NO-OPS
|
|
65
|
+
// (the DO auto-commits per I/O turn), and the setup migration is async (it awaits
|
|
66
|
+
// initialSync, which yields across turns). so if the boot is killed mid-migration
|
|
67
|
+
// — the 120s ready-timeout, a DO eviction, an OOM — the _zero.* tables auto-commit
|
|
68
|
+
// but the closing versionHistory INSERT never runs. next boot: getVersionHistory
|
|
69
|
+
// reads an empty table => dataVersion 0 => it re-runs the setup migration =>
|
|
70
|
+
// CREATE TABLE "_zero.replicationConfig" => "already exists" SQLITE_ERROR, and
|
|
71
|
+
// /sync never reaches ready (editor stuck on "loading files"). detect that exact
|
|
72
|
+
// inconsistency (replica data tables present but no versionHistory row) and wipe
|
|
73
|
+
// the _zero.* replica so the embed re-runs initial sync cleanly.
|
|
74
|
+
export function repairPartialReplicaInit(sql, opts = {}) {
|
|
75
|
+
const logPrefix = opts.logPrefix ?? '[orez]';
|
|
76
|
+
const hasConfig = sql
|
|
77
|
+
.exec("SELECT 1 FROM sqlite_master WHERE type='table' AND name='_zero.replicationConfig'")
|
|
78
|
+
.toArray().length;
|
|
79
|
+
if (!hasConfig)
|
|
80
|
+
return;
|
|
81
|
+
let versionRows = 0;
|
|
82
|
+
try {
|
|
83
|
+
versionRows = sql
|
|
84
|
+
.exec('SELECT 1 FROM "_zero.versionHistory" LIMIT 1')
|
|
85
|
+
.toArray().length;
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
// versionHistory table missing entirely is also an inconsistent state
|
|
89
|
+
versionRows = 0;
|
|
90
|
+
}
|
|
91
|
+
if (versionRows > 0)
|
|
92
|
+
return;
|
|
93
|
+
// inconsistent: the replica's _zero.* control tables exist but version tracking
|
|
94
|
+
// is empty. the ENTIRE replica is half-initialized — initial-sync creates the
|
|
95
|
+
// _zero.* control tables AND the published app tables in the same interrupted
|
|
96
|
+
// run, so re-running setup also fails on a duplicate app table. drop every
|
|
97
|
+
// replica table so the next boot initial-syncs the whole set from scratch.
|
|
98
|
+
const dropped = dropReplicaTables(sql);
|
|
99
|
+
console.log(logPrefix +
|
|
100
|
+
' repaired partial replica init: dropped ' +
|
|
101
|
+
dropped +
|
|
102
|
+
' replica tables (no versionHistory row) so initial sync re-runs');
|
|
103
|
+
}
|
|
104
|
+
// a changeLog transaction group without a commit entry is an interrupted storer
|
|
105
|
+
// write (zero stores each replicated tx inside one pg transaction; real pg rolls
|
|
106
|
+
// a crashed tx back, but the DO sqlite shim auto-commits per turn, so a kill
|
|
107
|
+
// persists the partial group). catchup replays it as begin->data->begin and the
|
|
108
|
+
// replicator dies on "Already in a transaction" on every boot. wiping the replica
|
|
109
|
+
// here makes the uninitialized-replica guard clear cdc state, forcing a clean
|
|
110
|
+
// initial sync.
|
|
111
|
+
export async function resetReplicaIfChangeLogPoisoned(sql, backendExec, opts) {
|
|
112
|
+
const logPrefix = opts.logPrefix ?? '[orez]';
|
|
113
|
+
const initialized = sql
|
|
114
|
+
.exec("SELECT 1 FROM sqlite_master WHERE type='table' AND name='_zero.replicationConfig'")
|
|
115
|
+
.toArray().length;
|
|
116
|
+
if (!initialized)
|
|
117
|
+
return;
|
|
118
|
+
// /exec parses pg SQL: placeholders are $1-style, never '?'. an {error}
|
|
119
|
+
// response must be surfaced — treating it as "no rows" silently disables the
|
|
120
|
+
// guard (the exact failure mode this guard exists to prevent).
|
|
121
|
+
const listBody = await backendExec("SELECT name FROM sqlite_master WHERE type='table' AND name LIKE $1", [opts.appId + '_%/cdc_changeLog']);
|
|
122
|
+
if (listBody.error) {
|
|
123
|
+
console.error(logPrefix + ' changeLog poison check failed (list): ' + listBody.error);
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
const names = (listBody.rows || []).map((row) => String(row.name));
|
|
127
|
+
for (const name of names) {
|
|
128
|
+
const checkBody = await backendExec('SELECT watermark FROM "' +
|
|
129
|
+
name.replaceAll('"', '""') +
|
|
130
|
+
"\" GROUP BY watermark HAVING SUM(CASE WHEN json_extract(change, '$.tag') = 'commit' THEN 1 ELSE 0 END) = 0 LIMIT 1");
|
|
131
|
+
if (checkBody.error) {
|
|
132
|
+
console.error(logPrefix + ' changeLog poison check failed (scan): ' + checkBody.error);
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
const rows = checkBody.rows || [];
|
|
136
|
+
console.log(logPrefix +
|
|
137
|
+
' changeLog poison scan: ' +
|
|
138
|
+
name +
|
|
139
|
+
' -> ' +
|
|
140
|
+
(rows.length ? 'POISONED at ' + rows[0].watermark : 'clean'));
|
|
141
|
+
if (!rows.length)
|
|
142
|
+
continue;
|
|
143
|
+
const dropped = dropReplicaTables(sql);
|
|
144
|
+
console.log(logPrefix +
|
|
145
|
+
' cdc changeLog has a partial transaction at watermark ' +
|
|
146
|
+
rows[0].watermark +
|
|
147
|
+
' (interrupted storer write): dropped ' +
|
|
148
|
+
dropped +
|
|
149
|
+
' replica tables so cdc state clears and initial sync re-runs');
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// a replica without its init marker must not reuse the cdc subscription state,
|
|
154
|
+
// or initial sync never re-runs. the change-streamer's subscription state lives
|
|
155
|
+
// in the SQL DO and SURVIVES a replica wipe (the resets above, or an OOM
|
|
156
|
+
// eviction); a wiped replica + surviving subscription state makes zero-cache
|
|
157
|
+
// skip initial sync ("already synced") and serve an EMPTY replica that only ever
|
|
158
|
+
// receives catchup changes. when the replica has no init marker, clear the cdc
|
|
159
|
+
// state so the embed re-runs initial sync from scratch.
|
|
160
|
+
export async function clearChangeStreamerStateIfReplicaUninitialized(sql, backendExec, opts) {
|
|
161
|
+
const logPrefix = opts.logPrefix ?? '[orez]';
|
|
162
|
+
const initialized = sql
|
|
163
|
+
.exec("SELECT 1 FROM sqlite_master WHERE type='table' AND name='_zero.replicationConfig'")
|
|
164
|
+
.toArray().length;
|
|
165
|
+
if (initialized)
|
|
166
|
+
return;
|
|
167
|
+
// /exec parses pg SQL: $1-style placeholders, never '?' (a '?' is a parse
|
|
168
|
+
// error whose {error} body silently disabled this guard).
|
|
169
|
+
const body = await backendExec("SELECT name FROM sqlite_master WHERE type='table' AND name LIKE $1", [opts.appId + '_%/cdc_%']);
|
|
170
|
+
if (body.error) {
|
|
171
|
+
console.error(logPrefix + ' cdc state clear failed (list): ' + body.error);
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
const names = (body.rows || []).map((row) => String(row.name));
|
|
175
|
+
for (const name of names) {
|
|
176
|
+
await backendExec('DROP TABLE IF EXISTS "' + name.replaceAll('"', '""') + '"');
|
|
177
|
+
}
|
|
178
|
+
if (names.length) {
|
|
179
|
+
console.log(logPrefix +
|
|
180
|
+
' replica uninitialized: cleared ' +
|
|
181
|
+
names.length +
|
|
182
|
+
' cdc state tables so initial sync re-runs');
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=zero-cache-replica-repair.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zero-cache-replica-repair.js","sourceRoot":"","sources":["../../src/worker/zero-cache-replica-repair.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* runaway-write circuit breaker for a Durable Object's SQLite storage.
|
|
3
|
+
*
|
|
4
|
+
* a ZeroSqlDO (orez `ZeroDO`) runs the pg-over-DO backend in-instance, so a
|
|
5
|
+
* buggy or malicious mutation flow can write unbounded rows into the DO's
|
|
6
|
+
* SQLite and blow past the platform's per-object storage + billing limits
|
|
7
|
+
* before anything notices. this wraps `sql.exec` to meter rows written per
|
|
8
|
+
* rolling window and trip — refusing further writes — once the rate stays over
|
|
9
|
+
* a soft threshold for a sustained period, or instantly past a hard threshold.
|
|
10
|
+
*
|
|
11
|
+
* the meter state lives in a single-row table in the same SQLite, so a tripped
|
|
12
|
+
* breaker survives DO eviction (the object stays bricked-for-writes until an
|
|
13
|
+
* operator clears the row). reads are never gated. the wrap is idempotent per
|
|
14
|
+
* `sql` handle.
|
|
15
|
+
*
|
|
16
|
+
* pure logic over the minimal `DurableSqlStorage` shape (no `@cloudflare/...`
|
|
17
|
+
* types), unit-tested in zero-sql-write-circuit.test.ts. consumers install it
|
|
18
|
+
* from their ZeroSqlDO constructor with their own table/log prefix.
|
|
19
|
+
*/
|
|
20
|
+
export interface DurableSqlCursor {
|
|
21
|
+
one(): Record<string, unknown> | undefined;
|
|
22
|
+
rowsWritten?: number;
|
|
23
|
+
}
|
|
24
|
+
export interface DurableSqlStorage {
|
|
25
|
+
exec(sql: string, ...params: unknown[]): DurableSqlCursor;
|
|
26
|
+
}
|
|
27
|
+
export interface WriteCircuitOptions {
|
|
28
|
+
/** single-row meter table name. default `_orez_write_circuit`. */
|
|
29
|
+
table?: string;
|
|
30
|
+
/** soft cap: rows/window above which the sustained timer starts. default 2,000,000. */
|
|
31
|
+
rowsPerWindow?: number;
|
|
32
|
+
/** hard cap: rows/window that trips instantly. default 10,000,000. */
|
|
33
|
+
hardRowsPerWindow?: number;
|
|
34
|
+
/** rolling window length in ms. default 60,000. */
|
|
35
|
+
windowMs?: number;
|
|
36
|
+
/** how long the rate must stay over the soft cap before tripping, in ms. default 180,000. */
|
|
37
|
+
sustainedMs?: number;
|
|
38
|
+
/** log prefix for the trip diagnostics. default `[orez]`. */
|
|
39
|
+
logPrefix?: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* wrap `sql.exec` with the runaway-write circuit breaker. idempotent: a second
|
|
43
|
+
* call on the same `sql` handle is a no-op.
|
|
44
|
+
*/
|
|
45
|
+
export declare function installZeroSqlWriteCircuitBreaker(sql: DurableSqlStorage, opts?: WriteCircuitOptions): void;
|
|
46
|
+
//# sourceMappingURL=zero-sql-write-circuit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zero-sql-write-circuit.d.ts","sourceRoot":"","sources":["../../src/worker/zero-sql-write-circuit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAA;CAC1D;AAED,MAAM,WAAW,mBAAmB;IAClC,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,uFAAuF;IACvF,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,6FAA6F;IAC7F,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAQD;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,iBAAiB,EACtB,IAAI,GAAE,mBAAwB,GAC7B,IAAI,CA+HN"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* runaway-write circuit breaker for a Durable Object's SQLite storage.
|
|
3
|
+
*
|
|
4
|
+
* a ZeroSqlDO (orez `ZeroDO`) runs the pg-over-DO backend in-instance, so a
|
|
5
|
+
* buggy or malicious mutation flow can write unbounded rows into the DO's
|
|
6
|
+
* SQLite and blow past the platform's per-object storage + billing limits
|
|
7
|
+
* before anything notices. this wraps `sql.exec` to meter rows written per
|
|
8
|
+
* rolling window and trip — refusing further writes — once the rate stays over
|
|
9
|
+
* a soft threshold for a sustained period, or instantly past a hard threshold.
|
|
10
|
+
*
|
|
11
|
+
* the meter state lives in a single-row table in the same SQLite, so a tripped
|
|
12
|
+
* breaker survives DO eviction (the object stays bricked-for-writes until an
|
|
13
|
+
* operator clears the row). reads are never gated. the wrap is idempotent per
|
|
14
|
+
* `sql` handle.
|
|
15
|
+
*
|
|
16
|
+
* pure logic over the minimal `DurableSqlStorage` shape (no `@cloudflare/...`
|
|
17
|
+
* types), unit-tested in zero-sql-write-circuit.test.ts. consumers install it
|
|
18
|
+
* from their ZeroSqlDO constructor with their own table/log prefix.
|
|
19
|
+
*/
|
|
20
|
+
// any statement that can write rows (so reads never pay the meter cost).
|
|
21
|
+
const MUTATION_RE = /^\s*(?:insert|update|delete|replace|create|alter|drop|truncate|vacuum|reindex|with)\b/i;
|
|
22
|
+
const INSTALLED = new WeakSet();
|
|
23
|
+
/**
|
|
24
|
+
* wrap `sql.exec` with the runaway-write circuit breaker. idempotent: a second
|
|
25
|
+
* call on the same `sql` handle is a no-op.
|
|
26
|
+
*/
|
|
27
|
+
export function installZeroSqlWriteCircuitBreaker(sql, opts = {}) {
|
|
28
|
+
if (!sql || INSTALLED.has(sql))
|
|
29
|
+
return;
|
|
30
|
+
const table = opts.table ?? '_orez_write_circuit';
|
|
31
|
+
const rowsPerWindow = opts.rowsPerWindow ?? 2_000_000;
|
|
32
|
+
const hardRowsPerWindow = opts.hardRowsPerWindow ?? 10_000_000;
|
|
33
|
+
const windowMs = opts.windowMs ?? 60 * 1000;
|
|
34
|
+
const sustainedMs = opts.sustainedMs ?? 3 * 60 * 1000;
|
|
35
|
+
const logPrefix = opts.logPrefix ?? '[orez]';
|
|
36
|
+
const rawExec = sql.exec.bind(sql);
|
|
37
|
+
let ready = false;
|
|
38
|
+
const ensureReady = () => {
|
|
39
|
+
if (ready)
|
|
40
|
+
return;
|
|
41
|
+
rawExec('CREATE TABLE IF NOT EXISTS ' +
|
|
42
|
+
table +
|
|
43
|
+
' (id INTEGER PRIMARY KEY CHECK (id = 1), window_start INTEGER NOT NULL DEFAULT 0, rows_in_window INTEGER NOT NULL DEFAULT 0, first_over_at INTEGER NOT NULL DEFAULT 0, tripped_at INTEGER NOT NULL DEFAULT 0, last_statement TEXT)');
|
|
44
|
+
rawExec('INSERT OR IGNORE INTO ' +
|
|
45
|
+
table +
|
|
46
|
+
' (id, window_start, rows_in_window, first_over_at, tripped_at, last_statement) VALUES (1, 0, 0, 0, 0, ?)', '');
|
|
47
|
+
ready = true;
|
|
48
|
+
};
|
|
49
|
+
const readState = () => {
|
|
50
|
+
ensureReady();
|
|
51
|
+
return (rawExec('SELECT window_start, rows_in_window, first_over_at, tripped_at FROM ' +
|
|
52
|
+
table +
|
|
53
|
+
' WHERE id = 1').one() || {});
|
|
54
|
+
};
|
|
55
|
+
const clippedStatement = (statement) => String(statement || '')
|
|
56
|
+
.replace(/\s+/g, ' ')
|
|
57
|
+
.trim()
|
|
58
|
+
.slice(0, 500);
|
|
59
|
+
const assertOpen = (statement) => {
|
|
60
|
+
const state = readState();
|
|
61
|
+
const trippedAt = Number(state.tripped_at || 0);
|
|
62
|
+
if (trippedAt > 0) {
|
|
63
|
+
throw new Error(logPrefix +
|
|
64
|
+
' ZeroSqlDO write circuit breaker tripped at ' +
|
|
65
|
+
new Date(trippedAt).toISOString() +
|
|
66
|
+
'; refusing SQL write: ' +
|
|
67
|
+
clippedStatement(statement));
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
const recordRowsWritten = (rowsWritten, statement) => {
|
|
71
|
+
const rows = Number(rowsWritten || 0);
|
|
72
|
+
if (!Number.isFinite(rows) || rows <= 0)
|
|
73
|
+
return false;
|
|
74
|
+
const now = Date.now();
|
|
75
|
+
const state = readState();
|
|
76
|
+
let windowStart = Number(state.window_start || 0);
|
|
77
|
+
let rowsInWindow = Number(state.rows_in_window || 0);
|
|
78
|
+
let firstOverAt = Number(state.first_over_at || 0);
|
|
79
|
+
const trippedAt = Number(state.tripped_at || 0);
|
|
80
|
+
if (trippedAt > 0)
|
|
81
|
+
return true;
|
|
82
|
+
const windowAgeMs = windowStart ? now - windowStart : 0;
|
|
83
|
+
if (!windowStart || windowAgeMs >= windowMs) {
|
|
84
|
+
const previousWindowWasOver = windowAgeMs < windowMs * 2 && rowsInWindow > rowsPerWindow;
|
|
85
|
+
windowStart = now;
|
|
86
|
+
rowsInWindow = 0;
|
|
87
|
+
if (!previousWindowWasOver)
|
|
88
|
+
firstOverAt = 0;
|
|
89
|
+
}
|
|
90
|
+
rowsInWindow += rows;
|
|
91
|
+
let nextTrippedAt = 0;
|
|
92
|
+
if (rowsInWindow > rowsPerWindow) {
|
|
93
|
+
if (!firstOverAt)
|
|
94
|
+
firstOverAt = now;
|
|
95
|
+
if (rowsInWindow > hardRowsPerWindow || now - firstOverAt >= sustainedMs) {
|
|
96
|
+
nextTrippedAt = now;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
rawExec('UPDATE ' +
|
|
100
|
+
table +
|
|
101
|
+
' SET window_start = ?, rows_in_window = ?, first_over_at = ?, tripped_at = ?, last_statement = ? WHERE id = 1', windowStart, rowsInWindow, firstOverAt, nextTrippedAt, clippedStatement(statement));
|
|
102
|
+
if (nextTrippedAt) {
|
|
103
|
+
console.error(logPrefix +
|
|
104
|
+
' ZeroSqlDO write circuit breaker tripped: rows_in_window=' +
|
|
105
|
+
rowsInWindow +
|
|
106
|
+
', rows_written=' +
|
|
107
|
+
rows +
|
|
108
|
+
', statement=' +
|
|
109
|
+
clippedStatement(statement));
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
return false;
|
|
113
|
+
};
|
|
114
|
+
sql.exec = (statement, ...params) => {
|
|
115
|
+
const text = String(statement || '');
|
|
116
|
+
const isCircuitStatement = text.includes(table);
|
|
117
|
+
const isMutation = MUTATION_RE.test(text) && !isCircuitStatement;
|
|
118
|
+
if (isMutation)
|
|
119
|
+
assertOpen(text);
|
|
120
|
+
const cursor = rawExec(statement, ...params);
|
|
121
|
+
if (isMutation && recordRowsWritten(cursor && cursor.rowsWritten, text)) {
|
|
122
|
+
assertOpen(text);
|
|
123
|
+
}
|
|
124
|
+
return cursor;
|
|
125
|
+
};
|
|
126
|
+
INSTALLED.add(sql);
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=zero-sql-write-circuit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zero-sql-write-circuit.js","sourceRoot":"","sources":["../../src/worker/zero-sql-write-circuit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zero-health.d.ts","sourceRoot":"","sources":["../src/zero-health.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAE9E,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,mBAAmB,CAAC,CAiB9B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export async function probeZeroCacheHttp(zeroPort, timeoutMs) {
|
|
2
|
+
const controller = new AbortController();
|
|
3
|
+
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
|
4
|
+
try {
|
|
5
|
+
const res = await fetch(`http://127.0.0.1:${zeroPort}/`, {
|
|
6
|
+
signal: controller.signal,
|
|
7
|
+
});
|
|
8
|
+
// zero may return 404 on "/" while still being healthy.
|
|
9
|
+
if (res.ok || res.status === 404)
|
|
10
|
+
return { ok: true };
|
|
11
|
+
return { ok: false, reason: `HTTP ${res.status}` };
|
|
12
|
+
}
|
|
13
|
+
catch (err) {
|
|
14
|
+
return { ok: false, reason: err?.message || String(err) || 'request failed' };
|
|
15
|
+
}
|
|
16
|
+
finally {
|
|
17
|
+
clearTimeout(timer);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=zero-health.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zero-health.js","sourceRoot":"","sources":["../src/zero-health.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAAgB,EAChB,SAAiB;IAEjB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;IACxC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAA;IAE7D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,oBAAoB,QAAQ,GAAG,EAAE;YACvD,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAA;QAEF,wDAAwD;QACxD,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;QACrD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAG,CAAC,MAAM,EAAE,EAAE,CAAA;IACpD,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,gBAAgB,EAAE,CAAA;IAC/E,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAA;IACrB,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "orez",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.27",
|
|
4
4
|
"description": "PGlite-powered zero-sync development backend. No Docker required.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
"@electric-sql/pglite": "0.4.1",
|
|
88
88
|
"@electric-sql/pglite-tools": "^0.3.1",
|
|
89
89
|
"@pgsql/traverse": "17.2.6",
|
|
90
|
-
"bedrock-sqlite": "0.4.
|
|
90
|
+
"bedrock-sqlite": "0.4.27",
|
|
91
91
|
"citty": "^0.2.0",
|
|
92
92
|
"pg-gateway": "0.3.0-beta.4",
|
|
93
93
|
"pgsql-parser": "^17.9.11",
|