@duetso/agent 0.1.149 → 0.1.150
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/package.json
CHANGED
|
@@ -107,6 +107,19 @@ export declare function openForRecovery(path: string): Promise<PGlite>;
|
|
|
107
107
|
* memory.db aside because of a transient packaging error.
|
|
108
108
|
*/
|
|
109
109
|
export declare function isExternalAssetError(error: unknown, dataDir: string): boolean;
|
|
110
|
+
/**
|
|
111
|
+
* True when `path` looks like a valid PGlite cluster: it contains a
|
|
112
|
+
* non-empty `PG_VERSION` and every directory PGlite needs to bootstrap a
|
|
113
|
+
* cluster. Used as a quarantine guard so an upgrade-time WASM/data load
|
|
114
|
+
* failure cannot move a healthy memory.db aside. Exported for testing.
|
|
115
|
+
*/
|
|
116
|
+
export declare function looksLikeIntactPGliteDirectory(path: string): boolean;
|
|
117
|
+
/**
|
|
118
|
+
* List rotating backup directories that sit alongside the live dataDir.
|
|
119
|
+
* Returns absolute paths sorted newest-first by lexicographic timestamp.
|
|
120
|
+
* Exported for testing.
|
|
121
|
+
*/
|
|
122
|
+
export declare function listBackups(path: string): string[];
|
|
110
123
|
/**
|
|
111
124
|
* Renames a presumed-corrupt data directory aside so a fresh database can be
|
|
112
125
|
* created in its place. Returns the new path. Exported for testing.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pglite.d.ts","sourceRoot":"","sources":["../../../src/memory/pglite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"pglite.d.ts","sourceRoot":"","sources":["../../../src/memory/pglite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAkC9C,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CACpE;AAED;;;;;GAKG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBACd,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAUjE;AAED,MAAM,MAAM,wBAAwB,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpF;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,QAAS,CAAC;AAwEvD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAU/F;AAED;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,iBAAsB,EAC/B,YAAY,GAAE,MAAyC,GACtD,OAAO,CAAC,MAAM,CAAC,CAUjB;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAuB5F;AAMD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAmF3C;AA+ED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGnE;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAkB7E;AAUD;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMpE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAgBlD;AAuHD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK5D;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,wBAAwB,CA8C5E;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAOvD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAOtD;AAkBD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAkB9D;AA+BD,eAAO,MAAM,SAAS;;;CAGrB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PGlite } from "@electric-sql/pglite";
|
|
2
2
|
import { vector } from "@electric-sql/pglite/vector";
|
|
3
|
-
import { closeSync, mkdirSync, openSync, readFileSync, renameSync, statSync, unlinkSync, writeSync, } from "node:fs";
|
|
4
|
-
import { dirname, resolve as resolvePath, join } from "node:path";
|
|
3
|
+
import { closeSync, cpSync, mkdirSync, openSync, readdirSync, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeSync, } from "node:fs";
|
|
4
|
+
import { basename, dirname, resolve as resolvePath, join } from "node:path";
|
|
5
5
|
/**
|
|
6
6
|
* pgvector ships with PGlite as an opt-in WASM extension. We load it
|
|
7
7
|
* unconditionally so every memory database can run hybrid retrieval
|
|
@@ -43,6 +43,41 @@ export class MemoryLockTimeoutError extends Error {
|
|
|
43
43
|
* indefinitely.
|
|
44
44
|
*/
|
|
45
45
|
export const DEFAULT_OPEN_LOCK_WAIT_BUDGET_MS = 30_000;
|
|
46
|
+
/**
|
|
47
|
+
* Total wall-time we'll spend retrying opens on a structurally-intact cluster before
|
|
48
|
+
* giving up and quarantining. Long enough to outlast a slow `npm install -g` rewrite
|
|
49
|
+
* of `node_modules` (the only known transient failure mode that mimics corruption,
|
|
50
|
+
* routinely 5-12s on cold caches), short enough to stay well under a typical agent
|
|
51
|
+
* turn so a genuinely WAL-corrupted dataDir surfaces as a quarantine event in the
|
|
52
|
+
* same session instead of disappearing into a longer-than-the-turn poll.
|
|
53
|
+
*/
|
|
54
|
+
const RETRY_BEFORE_QUARANTINE_BUDGET_MS = 10_000;
|
|
55
|
+
/**
|
|
56
|
+
* Number of rotating on-disk backups we keep alongside the live dataDir. Each new
|
|
57
|
+
* startup snapshots the dir (best-effort) so we always have a recent known-good
|
|
58
|
+
* cluster to fall back on if PGlite can no longer open the current one. Five is
|
|
59
|
+
* enough to span a few days of normal use without bloating `~/.duet`.
|
|
60
|
+
*/
|
|
61
|
+
const MAX_BACKUPS = 5;
|
|
62
|
+
/**
|
|
63
|
+
* Filename prefix used for rotating on-disk backups. Siblings to the live `memory.db`
|
|
64
|
+
* directory, suffixed with an ISO timestamp so newest-first sort is plain lexicographic.
|
|
65
|
+
*/
|
|
66
|
+
const BACKUP_SUFFIX_PREFIX = ".backup-";
|
|
67
|
+
/**
|
|
68
|
+
* Skip taking a startup snapshot if the most recent backup is younger than this.
|
|
69
|
+
* MemorySession refcount-opens many times per turn; without dedupe we'd burn inodes
|
|
70
|
+
* snapshotting on every acquire. Picked to be much shorter than typical inter-session
|
|
71
|
+
* gaps so a fresh duet launch after even a brief pause still gets a new backup.
|
|
72
|
+
*/
|
|
73
|
+
const BACKUP_DEDUPE_WINDOW_MS = 5 * 60 * 1_000;
|
|
74
|
+
/**
|
|
75
|
+
* Backoff schedule between retry attempts during the quarantine grace window.
|
|
76
|
+
* Front-loaded (250ms, 500ms, 1s) so a fast upgrade is picked up quickly,
|
|
77
|
+
* with a 2s ceiling so a long `npm install` does not produce a retry storm
|
|
78
|
+
* before the budget elapses.
|
|
79
|
+
*/
|
|
80
|
+
const RETRY_BACKOFF_MS = [250, 500, 1_000, 2_000];
|
|
46
81
|
/**
|
|
47
82
|
* Exponential backoff schedule used by `pollAcquireOpenLock`. Doubles from 50ms up to a 1s
|
|
48
83
|
* ceiling so a peer that releases the lock during an idle-close gap is picked up within ~50ms,
|
|
@@ -171,6 +206,13 @@ export async function openPGliteHoldingLock(path, options, lockPath) {
|
|
|
171
206
|
clearStalePostmasterLock(path);
|
|
172
207
|
try {
|
|
173
208
|
const db = await openAndProbe(path, options.init);
|
|
209
|
+
// Snapshot the cluster after a successful open + init so every entry in
|
|
210
|
+
// the backup pool is verified-readable. Snapshotting before open would
|
|
211
|
+
// happily copy a WAL-corrupted dataDir into the pool and rotate out the
|
|
212
|
+
// last good copy, defeating the rotation. CHECKPOINT first so the on-disk
|
|
213
|
+
// bytes match the in-memory state PGlite just validated. Best-effort:
|
|
214
|
+
// checkpoint and copy failures are warned about but never block startup.
|
|
215
|
+
await snapshotAfterSuccessfulOpen(db, path);
|
|
174
216
|
return { db, lockPath };
|
|
175
217
|
}
|
|
176
218
|
catch (error) {
|
|
@@ -184,17 +226,55 @@ export async function openPGliteHoldingLock(path, options, lockPath) {
|
|
|
184
226
|
// node_modules fully unpacked) succeeds against the existing data.
|
|
185
227
|
if (isExternalAssetError(error, path))
|
|
186
228
|
throw error;
|
|
229
|
+
// Retry-then-quarantine for the structurally-intact case. A `duet
|
|
230
|
+
// upgrade` running concurrently with another duet CLI rewrites
|
|
231
|
+
// node_modules mid-flight, and the still-running duet's reopen can
|
|
232
|
+
// surface failure shapes that are not strictly ENOENT (a half-written
|
|
233
|
+
// wasm/data file appears as a `WebAssembly.CompileError`, a
|
|
234
|
+
// `RangeError`, or an ENOENT without a parseable path). These all
|
|
235
|
+
// resolve on their own once npm finishes, so polling for a tolerant
|
|
236
|
+
// window distinguishes them from genuine data corruption (WAL torn by
|
|
237
|
+
// a kill mid-write), which fails deterministically on every attempt.
|
|
238
|
+
// We only run the retry loop when the on-disk cluster *looks* intact
|
|
239
|
+
// (PG_VERSION + required subdirs present) so a clearly broken layout
|
|
240
|
+
// still quarantines immediately on the first failure.
|
|
241
|
+
if (looksLikeIntactPGliteDirectory(path)) {
|
|
242
|
+
const opened = await retryOpenWhileIntact(path, options.init);
|
|
243
|
+
if (opened)
|
|
244
|
+
return { db: opened, lockPath };
|
|
245
|
+
// Every attempt within the grace window failed — treat as genuine
|
|
246
|
+
// corruption and fall through to recovery using the original
|
|
247
|
+
// error as the cause.
|
|
248
|
+
}
|
|
187
249
|
// Release the lock before renaming the directory aside — the lock
|
|
188
250
|
// file lives inside that directory and would be moved with it.
|
|
189
251
|
releaseOpenLock(lockPath);
|
|
190
|
-
|
|
252
|
+
// Before quarantining + starting fresh, try restoring from rotating backups.
|
|
253
|
+
// Walk newest-first; each candidate is verified by actually opening it.
|
|
254
|
+
// On success the unreadable live dir is quarantined and the restored
|
|
255
|
+
// backup takes its place, so the user keeps their memory instead of
|
|
256
|
+
// starting from an empty db.
|
|
257
|
+
const restored = await tryRestoreFromBackup(path, options.init);
|
|
258
|
+
if (restored) {
|
|
259
|
+
if (options.onRecover) {
|
|
260
|
+
options.onRecover({ backupPath: restored.quarantinedPath, cause: error });
|
|
261
|
+
}
|
|
262
|
+
else {
|
|
263
|
+
const reason = error instanceof Error ? error.message || error.name : String(error);
|
|
264
|
+
console.warn(`[duet] memory database at ${path} could not be opened (${reason}). ` +
|
|
265
|
+
`Restored from backup ${restored.backupSource}; ` +
|
|
266
|
+
`the unreadable copy was moved to ${restored.quarantinedPath}.`);
|
|
267
|
+
}
|
|
268
|
+
return { db: restored.db, lockPath: restored.lockPath };
|
|
269
|
+
}
|
|
270
|
+
const quarantinedPath = quarantineDataDirectory(path);
|
|
191
271
|
if (options.onRecover) {
|
|
192
|
-
options.onRecover({ backupPath, cause: error });
|
|
272
|
+
options.onRecover({ backupPath: quarantinedPath, cause: error });
|
|
193
273
|
}
|
|
194
274
|
else {
|
|
195
275
|
const reason = error instanceof Error ? error.message || error.name : String(error);
|
|
196
276
|
console.warn(`[duet] memory database at ${path} could not be opened (${reason}). ` +
|
|
197
|
-
`Moved aside to ${
|
|
277
|
+
`Moved aside to ${quarantinedPath} and starting fresh.`);
|
|
198
278
|
}
|
|
199
279
|
const fresh = acquireOpenLock(path);
|
|
200
280
|
const db = await openAndProbe(path, options.init);
|
|
@@ -224,6 +304,36 @@ function installLockReleasingClose(db, lockPath) {
|
|
|
224
304
|
};
|
|
225
305
|
return db;
|
|
226
306
|
}
|
|
307
|
+
/**
|
|
308
|
+
* Poll `openAndProbe` for up to `RETRY_BEFORE_QUARANTINE_BUDGET_MS` while the on-disk
|
|
309
|
+
* cluster keeps looking intact. Returns the opened db on success, or `undefined` when
|
|
310
|
+
* the budget elapses (the caller then quarantines). External-asset ENOENTs short-circuit
|
|
311
|
+
* the loop — they signal a node_modules-side problem the retry cannot fix, and surfacing
|
|
312
|
+
* them as-is lets the user act on the real failure instead of waiting out the full budget
|
|
313
|
+
* to no effect. If the directory layout becomes structurally broken during the loop (e.g.
|
|
314
|
+
* a peer process truncated it), we also bail so quarantine can run.
|
|
315
|
+
*/
|
|
316
|
+
async function retryOpenWhileIntact(path, init) {
|
|
317
|
+
const start = Date.now();
|
|
318
|
+
for (let attempt = 0;; attempt++) {
|
|
319
|
+
const elapsed = Date.now() - start;
|
|
320
|
+
if (elapsed >= RETRY_BEFORE_QUARANTINE_BUDGET_MS)
|
|
321
|
+
return undefined;
|
|
322
|
+
const backoff = RETRY_BACKOFF_MS[Math.min(attempt, RETRY_BACKOFF_MS.length - 1)] ?? 2_000;
|
|
323
|
+
const remaining = RETRY_BEFORE_QUARANTINE_BUDGET_MS - elapsed;
|
|
324
|
+
await sleep(Math.max(1, Math.min(backoff, remaining)));
|
|
325
|
+
try {
|
|
326
|
+
return await openAndProbe(path, init);
|
|
327
|
+
}
|
|
328
|
+
catch (retryError) {
|
|
329
|
+
if (isExternalAssetError(retryError, path))
|
|
330
|
+
throw retryError;
|
|
331
|
+
if (!looksLikeIntactPGliteDirectory(path))
|
|
332
|
+
return undefined;
|
|
333
|
+
// Otherwise loop and try again until the budget elapses.
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
}
|
|
227
337
|
async function openAndProbe(path, init) {
|
|
228
338
|
// PGlite.create is the only API path that lets us register loadable
|
|
229
339
|
// extensions at construction time — the bare `new PGlite(path)` form
|
|
@@ -292,6 +402,173 @@ export function isExternalAssetError(error, dataDir) {
|
|
|
292
402
|
return normalized !== normalizedDir && !normalized.startsWith(`${normalizedDir}/`);
|
|
293
403
|
});
|
|
294
404
|
}
|
|
405
|
+
/**
|
|
406
|
+
* Subdirectories every PGlite cluster on disk has. If all of these plus a
|
|
407
|
+
* parseable `PG_VERSION` are present, the dataDir's on-disk layout is
|
|
408
|
+
* intact and any open failure is environmental (mid-upgrade asset rewrite,
|
|
409
|
+
* permissions, WASM load) rather than data corruption.
|
|
410
|
+
*/
|
|
411
|
+
const REQUIRED_PGLITE_SUBDIRS = ["base", "global", "pg_wal"];
|
|
412
|
+
/**
|
|
413
|
+
* True when `path` looks like a valid PGlite cluster: it contains a
|
|
414
|
+
* non-empty `PG_VERSION` and every directory PGlite needs to bootstrap a
|
|
415
|
+
* cluster. Used as a quarantine guard so an upgrade-time WASM/data load
|
|
416
|
+
* failure cannot move a healthy memory.db aside. Exported for testing.
|
|
417
|
+
*/
|
|
418
|
+
export function looksLikeIntactPGliteDirectory(path) {
|
|
419
|
+
if (!isExistingDirectory(path))
|
|
420
|
+
return false;
|
|
421
|
+
const versionFile = join(path, "PG_VERSION");
|
|
422
|
+
const version = tryReadFile(versionFile);
|
|
423
|
+
if (!version || version.trim().length === 0)
|
|
424
|
+
return false;
|
|
425
|
+
return REQUIRED_PGLITE_SUBDIRS.every((sub) => isExistingDirectory(join(path, sub)));
|
|
426
|
+
}
|
|
427
|
+
/**
|
|
428
|
+
* List rotating backup directories that sit alongside the live dataDir.
|
|
429
|
+
* Returns absolute paths sorted newest-first by lexicographic timestamp.
|
|
430
|
+
* Exported for testing.
|
|
431
|
+
*/
|
|
432
|
+
export function listBackups(path) {
|
|
433
|
+
const dir = dirname(path);
|
|
434
|
+
const base = basename(path);
|
|
435
|
+
let entries;
|
|
436
|
+
try {
|
|
437
|
+
entries = readdirSync(dir);
|
|
438
|
+
}
|
|
439
|
+
catch (error) {
|
|
440
|
+
if (error.code === "ENOENT")
|
|
441
|
+
return [];
|
|
442
|
+
throw error;
|
|
443
|
+
}
|
|
444
|
+
const prefix = `${base}${BACKUP_SUFFIX_PREFIX}`;
|
|
445
|
+
return entries
|
|
446
|
+
.filter((name) => name.startsWith(prefix))
|
|
447
|
+
.map((name) => join(dir, name))
|
|
448
|
+
.sort()
|
|
449
|
+
.reverse();
|
|
450
|
+
}
|
|
451
|
+
/**
|
|
452
|
+
* Take a best-effort snapshot of `path` for later restoration. Called only
|
|
453
|
+
* after a successful open + init so each entry in the rotation is
|
|
454
|
+
* verified-readable. CHECKPOINT first to flush dirty buffers so the on-disk
|
|
455
|
+
* bytes match the in-memory state PGlite just validated. No-ops when a recent
|
|
456
|
+
* backup already exists within the dedupe window (MemorySession refcount-opens
|
|
457
|
+
* would otherwise burn inodes on every acquire). Prunes to `MAX_BACKUPS`
|
|
458
|
+
* newest. Errors at any step are warned about but never block startup.
|
|
459
|
+
*/
|
|
460
|
+
async function snapshotAfterSuccessfulOpen(db, path) {
|
|
461
|
+
try {
|
|
462
|
+
const existing = listBackups(path);
|
|
463
|
+
if (existing.length > 0) {
|
|
464
|
+
const newest = existing[0];
|
|
465
|
+
if (newest) {
|
|
466
|
+
try {
|
|
467
|
+
const age = Date.now() - statSync(newest).mtimeMs;
|
|
468
|
+
if (age < BACKUP_DEDUPE_WINDOW_MS)
|
|
469
|
+
return;
|
|
470
|
+
}
|
|
471
|
+
catch {
|
|
472
|
+
// If we can't stat the newest backup, fall through and take a new one.
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
try {
|
|
477
|
+
await db.exec("CHECKPOINT");
|
|
478
|
+
}
|
|
479
|
+
catch {
|
|
480
|
+
// Checkpoint failures should not block the snapshot — the WAL on disk
|
|
481
|
+
// is still self-consistent, the copy just may be slightly stale.
|
|
482
|
+
}
|
|
483
|
+
const stamp = new Date().toISOString().replace(/[:.]/g, "-");
|
|
484
|
+
const backup = `${path}${BACKUP_SUFFIX_PREFIX}${stamp}`;
|
|
485
|
+
// `cp -r` semantics; on APFS this uses clonefile so 60MB is near-instant.
|
|
486
|
+
cpSync(path, backup, { recursive: true });
|
|
487
|
+
pruneOldBackups(path);
|
|
488
|
+
}
|
|
489
|
+
catch (error) {
|
|
490
|
+
const reason = error instanceof Error ? error.message || error.name : String(error);
|
|
491
|
+
console.warn(`[duet] could not snapshot memory db at ${path} for backup (${reason}).`);
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
function pruneOldBackups(path) {
|
|
495
|
+
const backups = listBackups(path);
|
|
496
|
+
for (const stale of backups.slice(MAX_BACKUPS)) {
|
|
497
|
+
try {
|
|
498
|
+
rmSync(stale, { recursive: true, force: true });
|
|
499
|
+
}
|
|
500
|
+
catch {
|
|
501
|
+
// Best-effort prune; the next startup will try again.
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
/**
|
|
506
|
+
* Try restoring `path` from the rotating backups, newest-first. For each
|
|
507
|
+
* candidate: move the unreadable live dir aside, move the backup into place,
|
|
508
|
+
* acquire a fresh open-lock, and verify by actually opening + probing the
|
|
509
|
+
* restored dir. Returns the opened db + the path the unreadable live dir was
|
|
510
|
+
* quarantined to on success. On failure rolls the swap back and tries the next
|
|
511
|
+
* backup. Returns undefined when no backup yields a readable db.
|
|
512
|
+
*/
|
|
513
|
+
async function tryRestoreFromBackup(path, init) {
|
|
514
|
+
const backups = listBackups(path);
|
|
515
|
+
for (const candidate of backups) {
|
|
516
|
+
let quarantinedPath;
|
|
517
|
+
try {
|
|
518
|
+
quarantinedPath = quarantineDataDirectory(path);
|
|
519
|
+
}
|
|
520
|
+
catch {
|
|
521
|
+
// If we can't quarantine the live dir, no point continuing with this
|
|
522
|
+
// candidate or any other; surface to the caller's quarantine path.
|
|
523
|
+
return undefined;
|
|
524
|
+
}
|
|
525
|
+
try {
|
|
526
|
+
renameSync(candidate, path);
|
|
527
|
+
}
|
|
528
|
+
catch {
|
|
529
|
+
// Swap back the live dir; try the next candidate.
|
|
530
|
+
try {
|
|
531
|
+
renameSync(quarantinedPath, path);
|
|
532
|
+
}
|
|
533
|
+
catch {
|
|
534
|
+
// Live dir is now lost; let the caller's fresh-start path handle it.
|
|
535
|
+
}
|
|
536
|
+
continue;
|
|
537
|
+
}
|
|
538
|
+
try {
|
|
539
|
+
clearStalePostmasterLock(path);
|
|
540
|
+
const lockPath = acquireOpenLock(path);
|
|
541
|
+
try {
|
|
542
|
+
const db = await openAndProbe(path, init);
|
|
543
|
+
return { db, lockPath, backupSource: candidate, quarantinedPath };
|
|
544
|
+
}
|
|
545
|
+
catch (verifyError) {
|
|
546
|
+
releaseOpenLock(lockPath);
|
|
547
|
+
throw verifyError;
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
catch {
|
|
551
|
+
// This backup did not open either. Swap the original unreadable dir
|
|
552
|
+
// back into place so the next candidate (or the caller's fresh-start
|
|
553
|
+
// fallback) sees the same state we started with.
|
|
554
|
+
try {
|
|
555
|
+
renameSync(path, `${candidate}.failed-${Date.now()}`);
|
|
556
|
+
}
|
|
557
|
+
catch {
|
|
558
|
+
// If we can't move the failed candidate aside, leave it; the next
|
|
559
|
+
// iteration's rename(path, quarantinedPath) will still succeed.
|
|
560
|
+
}
|
|
561
|
+
try {
|
|
562
|
+
renameSync(quarantinedPath, path);
|
|
563
|
+
}
|
|
564
|
+
catch {
|
|
565
|
+
// Couldn't restore original state; bail and let caller quarantine.
|
|
566
|
+
return undefined;
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
return undefined;
|
|
571
|
+
}
|
|
295
572
|
/**
|
|
296
573
|
* Renames a presumed-corrupt data directory aside so a fresh database can be
|
|
297
574
|
* created in its place. Returns the new path. Exported for testing.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pglite.js","sourceRoot":"","sources":["../../../src/memory/pglite.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pglite.js","sourceRoot":"","sources":["../../../src/memory/pglite.ts"],"names":[],"mappings":"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"}
|