@indigoai-us/hq-cloud 6.18.12 → 6.18.13
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/bin/sync-runner-watch-loop.d.ts.map +1 -1
- package/dist/bin/sync-runner-watch-loop.js +6 -0
- package/dist/bin/sync-runner-watch-loop.js.map +1 -1
- package/dist/bin/sync-runner-watch-loop.test.js +2 -0
- package/dist/bin/sync-runner-watch-loop.test.js.map +1 -1
- package/dist/bin/sync-runner.d.ts +18 -2
- package/dist/bin/sync-runner.d.ts.map +1 -1
- package/dist/bin/sync-runner.js +102 -13
- package/dist/bin/sync-runner.js.map +1 -1
- package/dist/bin/sync-runner.test.js +108 -1
- package/dist/bin/sync-runner.test.js.map +1 -1
- package/dist/cli/share.d.ts +2 -0
- package/dist/cli/share.d.ts.map +1 -1
- package/dist/cli/share.js +19 -0
- package/dist/cli/share.js.map +1 -1
- package/dist/cli/sync.d.ts +2 -0
- package/dist/cli/sync.d.ts.map +1 -1
- package/dist/cli/sync.js +39 -2
- package/dist/cli/sync.js.map +1 -1
- package/dist/lib/exit-codes.d.ts +9 -2
- package/dist/lib/exit-codes.d.ts.map +1 -1
- package/dist/lib/exit-codes.js +9 -2
- package/dist/lib/exit-codes.js.map +1 -1
- package/dist/operation-lock.d.ts +43 -10
- package/dist/operation-lock.d.ts.map +1 -1
- package/dist/operation-lock.js +112 -48
- package/dist/operation-lock.js.map +1 -1
- package/dist/operation-lock.test.js +205 -116
- package/dist/operation-lock.test.js.map +1 -1
- package/dist/watch-owner-lease.d.ts +44 -0
- package/dist/watch-owner-lease.d.ts.map +1 -0
- package/dist/watch-owner-lease.js +368 -0
- package/dist/watch-owner-lease.js.map +1 -0
- package/dist/watch-owner-lease.test.d.ts +2 -0
- package/dist/watch-owner-lease.test.d.ts.map +1 -0
- package/dist/watch-owner-lease.test.js +335 -0
- package/dist/watch-owner-lease.test.js.map +1 -0
- package/package.json +2 -1
package/dist/operation-lock.d.ts
CHANGED
|
@@ -10,16 +10,17 @@
|
|
|
10
10
|
* already-admitted worker PIDs to leave. Different HQ roots are independent.
|
|
11
11
|
* - `reindex` uses a SEPARATE per-root scope ("reindex"), so it is guarded
|
|
12
12
|
* against other reindexes but is NOT blocked by a held sync/rescue lock.
|
|
13
|
-
* This is deliberate: a watch-mode `hq-sync-runner` holds the
|
|
14
|
-
*
|
|
13
|
+
* This is deliberate: a watch-mode `hq-sync-runner` holds the separate
|
|
14
|
+
* "watch-owner" scope across its lifetime, and a shared lock would starve a
|
|
15
15
|
* standalone `hq reindex` indefinitely (feedback_ed98d810). reindex only
|
|
16
16
|
* READS the source trees to rebuild derived artifacts (skill wrappers,
|
|
17
17
|
* overlay mirrors, the workers registry) and is idempotent + re-run after
|
|
18
18
|
* every sync pass, so decoupling it from the sync writer lock is safe.
|
|
19
19
|
* See {@link lockPathFor} for how the scope partitions the lock file.
|
|
20
|
-
* - The
|
|
21
|
-
*
|
|
22
|
-
* in-process push passes
|
|
20
|
+
* - The watch runner takes the separate "watch-owner" scope through this
|
|
21
|
+
* primitive. It does not take the "operation" scope, so one-shot sync and
|
|
22
|
+
* rescue keep their existing behavior and targeted in-process push passes
|
|
23
|
+
* remain lock-free.
|
|
23
24
|
*
|
|
24
25
|
* ## Where the lock lives — and why
|
|
25
26
|
*
|
|
@@ -96,17 +97,20 @@
|
|
|
96
97
|
* ## Release
|
|
97
98
|
*
|
|
98
99
|
* - Normal exit: the `with*` wrappers release in a `finally`.
|
|
99
|
-
* - Signals (SIGINT/SIGTERM): a one-time handler releases
|
|
100
|
-
* then re-raises the default disposition
|
|
100
|
+
* - Signals (SIGINT/SIGTERM/SIGHUP): by default a one-time handler releases
|
|
101
|
+
* signal-managed locks, then re-raises the default disposition. A caller
|
|
102
|
+
* with graceful shutdown may exclude its handle and temporarily suppress
|
|
103
|
+
* the re-raise while it drains work and releases locks itself.
|
|
101
104
|
* - Hard crash (SIGKILL / power loss): nothing runs, but a later gate
|
|
102
105
|
* contender reclaims dead exclusive owners and dead shared memberships.
|
|
103
106
|
* - `process.on("exit")`: a final best-effort synchronous unlink.
|
|
104
107
|
*
|
|
105
108
|
* ## Escape hatch
|
|
106
109
|
*
|
|
107
|
-
* `HQ_DISABLE_OP_LOCK=1` makes
|
|
108
|
-
* release does nothing).
|
|
109
|
-
*
|
|
110
|
+
* `HQ_DISABLE_OP_LOCK=1` makes optional acquisitions a no-op (returns a
|
|
111
|
+
* handle whose release does nothing). Mandatory scoped gates can set
|
|
112
|
+
* `required: true`; watch-owner uses this so the escape hatch cannot permit
|
|
113
|
+
* two live runners for one root.
|
|
110
114
|
*/
|
|
111
115
|
/** Process exit code used when an operation is refused because the lock is held. */
|
|
112
116
|
export declare const OPERATION_LOCKED_EXIT = 17;
|
|
@@ -124,6 +128,10 @@ export interface LockInfo {
|
|
|
124
128
|
hqRoot: string;
|
|
125
129
|
/** Gate role. Omitted payloads are legacy exclusive mutex holders. */
|
|
126
130
|
mode?: OperationLockMode;
|
|
131
|
+
/** Optional human-readable owner for long-lived scoped locks. */
|
|
132
|
+
owner?: string;
|
|
133
|
+
/** Version of the package holding the scoped lock. */
|
|
134
|
+
version?: string;
|
|
127
135
|
}
|
|
128
136
|
/**
|
|
129
137
|
* Normal sync processes hold shared membership. Repair and migration callers
|
|
@@ -207,6 +215,23 @@ export interface AcquireOptions {
|
|
|
207
215
|
scope?: string;
|
|
208
216
|
/** Override the command-derived gate role for this acquisition. */
|
|
209
217
|
mode?: OperationLockMode;
|
|
218
|
+
/** Optional status metadata persisted with the lock holder record. */
|
|
219
|
+
owner?: string;
|
|
220
|
+
version?: string;
|
|
221
|
+
/**
|
|
222
|
+
* Override PID-only liveness for a scoped lock. A false result makes the
|
|
223
|
+
* holder stale and eligible for takeover. Unspecified keeps the historical
|
|
224
|
+
* conservative PID check.
|
|
225
|
+
*/
|
|
226
|
+
isHolderLive?: (info: LockInfo) => boolean;
|
|
227
|
+
/** Keep mandatory scoped gates active even when HQ_DISABLE_OP_LOCK is set. */
|
|
228
|
+
required?: boolean;
|
|
229
|
+
/**
|
|
230
|
+
* Register this handle with the process-wide signal release/re-raise hook.
|
|
231
|
+
* Callers with their own graceful signal shutdown path may opt out; the
|
|
232
|
+
* process exit hook still performs synchronous best-effort release.
|
|
233
|
+
*/
|
|
234
|
+
installSignalHandlers?: boolean;
|
|
210
235
|
}
|
|
211
236
|
/**
|
|
212
237
|
* Default lock scope. `sync` and `rescue` share this one so they stay mutually
|
|
@@ -224,6 +249,14 @@ export declare const DEFAULT_LOCK_SCOPE = "operation";
|
|
|
224
249
|
* one another; the same scope is a real cross-process mutex.
|
|
225
250
|
*/
|
|
226
251
|
export declare function lockPathFor(hqRoot: string, scope?: string): string;
|
|
252
|
+
/** Synchronously release this process's operation locks before a hard exit. */
|
|
253
|
+
export declare function releaseHeldOperationLocks(): void;
|
|
254
|
+
/**
|
|
255
|
+
* Keep the process-wide lock signal hook from re-raising signals while a
|
|
256
|
+
* caller with its own graceful shutdown path is active. The caller remains
|
|
257
|
+
* responsible for draining and releasing its locks before restoring the hook.
|
|
258
|
+
*/
|
|
259
|
+
export declare function suppressOperationLockSignalReraise(): () => void;
|
|
227
260
|
/**
|
|
228
261
|
* If `err` is a permission-class fs error against the lock dir, rethrow it as an
|
|
229
262
|
* actionable {@link OperationLockUnwritableError}; otherwise rethrow it
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation-lock.d.ts","sourceRoot":"","sources":["../src/operation-lock.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"operation-lock.d.ts","sourceRoot":"","sources":["../src/operation-lock.ts"],"names":[],"mappings":"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"}
|
package/dist/operation-lock.js
CHANGED
|
@@ -10,16 +10,17 @@
|
|
|
10
10
|
* already-admitted worker PIDs to leave. Different HQ roots are independent.
|
|
11
11
|
* - `reindex` uses a SEPARATE per-root scope ("reindex"), so it is guarded
|
|
12
12
|
* against other reindexes but is NOT blocked by a held sync/rescue lock.
|
|
13
|
-
* This is deliberate: a watch-mode `hq-sync-runner` holds the
|
|
14
|
-
*
|
|
13
|
+
* This is deliberate: a watch-mode `hq-sync-runner` holds the separate
|
|
14
|
+
* "watch-owner" scope across its lifetime, and a shared lock would starve a
|
|
15
15
|
* standalone `hq reindex` indefinitely (feedback_ed98d810). reindex only
|
|
16
16
|
* READS the source trees to rebuild derived artifacts (skill wrappers,
|
|
17
17
|
* overlay mirrors, the workers registry) and is idempotent + re-run after
|
|
18
18
|
* every sync pass, so decoupling it from the sync writer lock is safe.
|
|
19
19
|
* See {@link lockPathFor} for how the scope partitions the lock file.
|
|
20
|
-
* - The
|
|
21
|
-
*
|
|
22
|
-
* in-process push passes
|
|
20
|
+
* - The watch runner takes the separate "watch-owner" scope through this
|
|
21
|
+
* primitive. It does not take the "operation" scope, so one-shot sync and
|
|
22
|
+
* rescue keep their existing behavior and targeted in-process push passes
|
|
23
|
+
* remain lock-free.
|
|
23
24
|
*
|
|
24
25
|
* ## Where the lock lives — and why
|
|
25
26
|
*
|
|
@@ -96,17 +97,20 @@
|
|
|
96
97
|
* ## Release
|
|
97
98
|
*
|
|
98
99
|
* - Normal exit: the `with*` wrappers release in a `finally`.
|
|
99
|
-
* - Signals (SIGINT/SIGTERM): a one-time handler releases
|
|
100
|
-
* then re-raises the default disposition
|
|
100
|
+
* - Signals (SIGINT/SIGTERM/SIGHUP): by default a one-time handler releases
|
|
101
|
+
* signal-managed locks, then re-raises the default disposition. A caller
|
|
102
|
+
* with graceful shutdown may exclude its handle and temporarily suppress
|
|
103
|
+
* the re-raise while it drains work and releases locks itself.
|
|
101
104
|
* - Hard crash (SIGKILL / power loss): nothing runs, but a later gate
|
|
102
105
|
* contender reclaims dead exclusive owners and dead shared memberships.
|
|
103
106
|
* - `process.on("exit")`: a final best-effort synchronous unlink.
|
|
104
107
|
*
|
|
105
108
|
* ## Escape hatch
|
|
106
109
|
*
|
|
107
|
-
* `HQ_DISABLE_OP_LOCK=1` makes
|
|
108
|
-
* release does nothing).
|
|
109
|
-
*
|
|
110
|
+
* `HQ_DISABLE_OP_LOCK=1` makes optional acquisitions a no-op (returns a
|
|
111
|
+
* handle whose release does nothing). Mandatory scoped gates can set
|
|
112
|
+
* `required: true`; watch-owner uses this so the escape hatch cannot permit
|
|
113
|
+
* two live runners for one root.
|
|
110
114
|
*/
|
|
111
115
|
import * as crypto from "crypto";
|
|
112
116
|
import * as fs from "fs";
|
|
@@ -218,11 +222,22 @@ function stateDir() {
|
|
|
218
222
|
}
|
|
219
223
|
function canonicalRoot(hqRoot) {
|
|
220
224
|
const resolved = path.resolve(hqRoot);
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
225
|
+
let current = resolved;
|
|
226
|
+
const missingSegments = [];
|
|
227
|
+
for (;;) {
|
|
228
|
+
try {
|
|
229
|
+
return path.join(fs.realpathSync.native(current), ...missingSegments.reverse());
|
|
230
|
+
}
|
|
231
|
+
catch (error) {
|
|
232
|
+
const code = error?.code;
|
|
233
|
+
if (code !== "ENOENT" && code !== "ENOTDIR")
|
|
234
|
+
return resolved;
|
|
235
|
+
const parent = path.dirname(current);
|
|
236
|
+
if (parent === current)
|
|
237
|
+
return resolved;
|
|
238
|
+
missingSegments.push(path.basename(current));
|
|
239
|
+
current = parent;
|
|
240
|
+
}
|
|
226
241
|
}
|
|
227
242
|
}
|
|
228
243
|
/**
|
|
@@ -264,6 +279,9 @@ function pidAlive(pid) {
|
|
|
264
279
|
return true; // EPERM (exists) or unknown → treat as alive
|
|
265
280
|
}
|
|
266
281
|
}
|
|
282
|
+
function holderIsLive(info, isHolderLive) {
|
|
283
|
+
return isHolderLive ? isHolderLive(info) : pidAlive(info.pid);
|
|
284
|
+
}
|
|
267
285
|
function readLockInfo(p) {
|
|
268
286
|
try {
|
|
269
287
|
const parsed = JSON.parse(fs.readFileSync(p, "utf8"));
|
|
@@ -355,10 +373,34 @@ function initializingLockInfo(p) {
|
|
|
355
373
|
};
|
|
356
374
|
}
|
|
357
375
|
// ── Process-wide release plumbing ──────────────────────────────────────────
|
|
358
|
-
// Track every lock
|
|
359
|
-
//
|
|
376
|
+
// Track every lock for synchronous exit cleanup, and track signal-managed
|
|
377
|
+
// handles separately so graceful owners can keep their own shutdown path.
|
|
378
|
+
// Each hook family is installed exactly once.
|
|
360
379
|
const heldLocks = new Set();
|
|
361
|
-
|
|
380
|
+
const signalManagedLocks = new Set();
|
|
381
|
+
let exitHookInstalled = false;
|
|
382
|
+
let signalHooksInstalled = false;
|
|
383
|
+
let signalReraiseSuppressionDepth = 0;
|
|
384
|
+
/** Synchronously release this process's operation locks before a hard exit. */
|
|
385
|
+
export function releaseHeldOperationLocks() {
|
|
386
|
+
for (const handle of heldLocks)
|
|
387
|
+
handle.release();
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* Keep the process-wide lock signal hook from re-raising signals while a
|
|
391
|
+
* caller with its own graceful shutdown path is active. The caller remains
|
|
392
|
+
* responsible for draining and releasing its locks before restoring the hook.
|
|
393
|
+
*/
|
|
394
|
+
export function suppressOperationLockSignalReraise() {
|
|
395
|
+
signalReraiseSuppressionDepth += 1;
|
|
396
|
+
let restored = false;
|
|
397
|
+
return () => {
|
|
398
|
+
if (restored)
|
|
399
|
+
return;
|
|
400
|
+
restored = true;
|
|
401
|
+
signalReraiseSuppressionDepth -= 1;
|
|
402
|
+
};
|
|
403
|
+
}
|
|
362
404
|
function unlinkIfOwned(p) {
|
|
363
405
|
// Only remove a lock whose recorded pid is THIS process — never clobber a
|
|
364
406
|
// lock another process took over after a (hypothetical) reclaim race.
|
|
@@ -372,17 +414,24 @@ function unlinkIfOwned(p) {
|
|
|
372
414
|
}
|
|
373
415
|
}
|
|
374
416
|
}
|
|
375
|
-
function
|
|
376
|
-
if (
|
|
417
|
+
function installExitHookOnce() {
|
|
418
|
+
if (exitHookInstalled)
|
|
377
419
|
return;
|
|
378
|
-
|
|
420
|
+
exitHookInstalled = true;
|
|
379
421
|
process.on("exit", () => {
|
|
380
422
|
for (const h of heldLocks)
|
|
381
423
|
h.release();
|
|
382
424
|
});
|
|
425
|
+
}
|
|
426
|
+
function installSignalHooksOnce() {
|
|
427
|
+
if (signalHooksInstalled)
|
|
428
|
+
return;
|
|
429
|
+
signalHooksInstalled = true;
|
|
383
430
|
for (const sig of ["SIGINT", "SIGTERM", "SIGHUP"]) {
|
|
384
431
|
process.on(sig, () => {
|
|
385
|
-
|
|
432
|
+
if (signalReraiseSuppressionDepth > 0)
|
|
433
|
+
return;
|
|
434
|
+
for (const h of signalManagedLocks)
|
|
386
435
|
h.release();
|
|
387
436
|
// Re-raise with the default disposition so the exit status is the normal
|
|
388
437
|
// signal status (and a second Ctrl-C still works). Removing our listener
|
|
@@ -392,7 +441,7 @@ function installHooksOnce() {
|
|
|
392
441
|
});
|
|
393
442
|
}
|
|
394
443
|
}
|
|
395
|
-
function makeHandle(p, info) {
|
|
444
|
+
function makeHandle(p, info, installSignalHandlers) {
|
|
396
445
|
let released = false;
|
|
397
446
|
const handle = {
|
|
398
447
|
path: p,
|
|
@@ -402,15 +451,20 @@ function makeHandle(p, info) {
|
|
|
402
451
|
return;
|
|
403
452
|
released = true;
|
|
404
453
|
heldLocks.delete(handle);
|
|
454
|
+
signalManagedLocks.delete(handle);
|
|
405
455
|
unlinkIfOwned(p);
|
|
406
456
|
},
|
|
407
457
|
};
|
|
408
458
|
heldLocks.add(handle);
|
|
409
|
-
|
|
459
|
+
installExitHookOnce();
|
|
460
|
+
if (installSignalHandlers) {
|
|
461
|
+
signalManagedLocks.add(handle);
|
|
462
|
+
installSignalHooksOnce();
|
|
463
|
+
}
|
|
410
464
|
return handle;
|
|
411
465
|
}
|
|
412
466
|
const NOOP_HANDLE_BASE = { release() { } };
|
|
413
|
-
/** No-op handle for the `HQ_DISABLE_OP_LOCK=1` escape hatch. */
|
|
467
|
+
/** No-op handle for the optional `HQ_DISABLE_OP_LOCK=1` escape hatch. */
|
|
414
468
|
function disabledHandle(hqRoot, command) {
|
|
415
469
|
const info = {
|
|
416
470
|
pid: process.pid,
|
|
@@ -444,7 +498,7 @@ export function rethrowLockCreateError(err, lockDir) {
|
|
|
444
498
|
throw err;
|
|
445
499
|
}
|
|
446
500
|
/** Build the lock payload + ensure the locks dir exists. */
|
|
447
|
-
function prepareLock(hqRoot, command, scope = DEFAULT_LOCK_SCOPE, mode) {
|
|
501
|
+
function prepareLock(hqRoot, command, scope = DEFAULT_LOCK_SCOPE, mode, owner, version) {
|
|
448
502
|
const p = lockPathFor(hqRoot, scope);
|
|
449
503
|
const dir = path.dirname(p);
|
|
450
504
|
try {
|
|
@@ -461,6 +515,8 @@ function prepareLock(hqRoot, command, scope = DEFAULT_LOCK_SCOPE, mode) {
|
|
|
461
515
|
startedAt: new Date().toISOString(),
|
|
462
516
|
hqRoot: canonicalRoot(hqRoot),
|
|
463
517
|
mode,
|
|
518
|
+
...(owner ? { owner } : {}),
|
|
519
|
+
...(version ? { version } : {}),
|
|
464
520
|
};
|
|
465
521
|
return { p, info, payload: JSON.stringify(info, null, 2) };
|
|
466
522
|
}
|
|
@@ -533,18 +589,18 @@ function publishLockPayload(p, payload) {
|
|
|
533
589
|
* reported as busy; empty/torn locks are treated as initializing and left in
|
|
534
590
|
* place. Throws only on genuinely pathological churn or unexpected fs errors.
|
|
535
591
|
*/
|
|
536
|
-
function tryAcquireOnce(p, info, payload) {
|
|
592
|
+
function tryAcquireOnce(p, info, payload, isHolderLive, installSignalHandlers = true) {
|
|
537
593
|
// Bounded retry: each iteration is one atomic create attempt. EEXIST against
|
|
538
594
|
// a stale holder reclaims and retries; EEXIST against a live holder reports
|
|
539
595
|
// it as busy.
|
|
540
596
|
const MAX_ATTEMPTS = 5;
|
|
541
597
|
for (let attempt = 0; attempt < MAX_ATTEMPTS; attempt++) {
|
|
542
598
|
if (publishLockPayload(p, payload)) {
|
|
543
|
-
return { handle: makeHandle(p, info) };
|
|
599
|
+
return { handle: makeHandle(p, info, installSignalHandlers) };
|
|
544
600
|
}
|
|
545
601
|
const holder = readLockInfo(p);
|
|
546
602
|
if (holder) {
|
|
547
|
-
if (
|
|
603
|
+
if (holderIsLive(holder, isHolderLive))
|
|
548
604
|
return { busy: holder };
|
|
549
605
|
try {
|
|
550
606
|
fs.unlinkSync(p);
|
|
@@ -619,7 +675,7 @@ function liveSharedMembers(p) {
|
|
|
619
675
|
}
|
|
620
676
|
return members;
|
|
621
677
|
}
|
|
622
|
-
function makeSharedHandle(p, memberPath, info) {
|
|
678
|
+
function makeSharedHandle(p, memberPath, info, installSignalHandlers) {
|
|
623
679
|
let released = false;
|
|
624
680
|
const handle = {
|
|
625
681
|
// Keep the historical path observable for callers and diagnostics. The
|
|
@@ -631,6 +687,7 @@ function makeSharedHandle(p, memberPath, info) {
|
|
|
631
687
|
return;
|
|
632
688
|
released = true;
|
|
633
689
|
heldLocks.delete(handle);
|
|
690
|
+
signalManagedLocks.delete(handle);
|
|
634
691
|
unlinkIfOwned(memberPath);
|
|
635
692
|
// Marker cleanup is cosmetic and happens behind the short admission
|
|
636
693
|
// turnstile. A failed opportunistic cleanup is safe: the next admission
|
|
@@ -654,14 +711,18 @@ function makeSharedHandle(p, memberPath, info) {
|
|
|
654
711
|
},
|
|
655
712
|
};
|
|
656
713
|
heldLocks.add(handle);
|
|
657
|
-
|
|
714
|
+
installExitHookOnce();
|
|
715
|
+
if (installSignalHandlers) {
|
|
716
|
+
signalManagedLocks.add(handle);
|
|
717
|
+
installSignalHooksOnce();
|
|
718
|
+
}
|
|
658
719
|
return handle;
|
|
659
720
|
}
|
|
660
|
-
function tryAcquireShared(p, info, payload) {
|
|
721
|
+
function tryAcquireShared(p, info, payload, installSignalHandlers) {
|
|
661
722
|
const initialBlocker = existingExclusiveBlocker(p);
|
|
662
723
|
if (initialBlocker)
|
|
663
724
|
return { busy: initialBlocker };
|
|
664
|
-
const admission = tryAcquireOnce(admissionPathFor(p), info, payload);
|
|
725
|
+
const admission = tryAcquireOnce(admissionPathFor(p), info, payload, undefined, installSignalHandlers);
|
|
665
726
|
if (!("handle" in admission))
|
|
666
727
|
return admission;
|
|
667
728
|
try {
|
|
@@ -679,20 +740,20 @@ function tryAcquireShared(p, info, payload) {
|
|
|
679
740
|
unlinkIfOwned(memberPath);
|
|
680
741
|
return { busy: existingExclusiveBlocker(p) ?? initializingLockInfo(p) };
|
|
681
742
|
}
|
|
682
|
-
return { handle: makeSharedHandle(p, memberPath, info) };
|
|
743
|
+
return { handle: makeSharedHandle(p, memberPath, info, installSignalHandlers) };
|
|
683
744
|
}
|
|
684
745
|
finally {
|
|
685
746
|
admission.handle.release();
|
|
686
747
|
}
|
|
687
748
|
}
|
|
688
|
-
function tryAcquireExclusive(p, info, payload) {
|
|
689
|
-
const admission = tryAcquireOnce(admissionPathFor(p), info, payload);
|
|
749
|
+
function tryAcquireExclusive(p, info, payload, isHolderLive, installSignalHandlers = true) {
|
|
750
|
+
const admission = tryAcquireOnce(admissionPathFor(p), info, payload, isHolderLive, installSignalHandlers);
|
|
690
751
|
if (!("handle" in admission))
|
|
691
752
|
return admission;
|
|
692
753
|
try {
|
|
693
754
|
let marker = readLockInfo(p);
|
|
694
755
|
if (marker && !isSharedMarker(marker)) {
|
|
695
|
-
if (
|
|
756
|
+
if (holderIsLive(marker, isHolderLive))
|
|
696
757
|
return { busy: marker };
|
|
697
758
|
try {
|
|
698
759
|
fs.unlinkSync(p);
|
|
@@ -701,8 +762,9 @@ function tryAcquireExclusive(p, info, payload) {
|
|
|
701
762
|
/* a contender replaced or reclaimed it; retry through the busy path */
|
|
702
763
|
}
|
|
703
764
|
marker = readLockInfo(p);
|
|
704
|
-
if (marker && !isSharedMarker(marker))
|
|
765
|
+
if (marker && !isSharedMarker(marker) && holderIsLive(marker, isHolderLive)) {
|
|
705
766
|
return { busy: marker };
|
|
767
|
+
}
|
|
706
768
|
}
|
|
707
769
|
if (!marker && fs.existsSync(p))
|
|
708
770
|
return { busy: initializingLockInfo(p) };
|
|
@@ -713,24 +775,25 @@ function tryAcquireExclusive(p, info, payload) {
|
|
|
713
775
|
if (!publishLockPayload(p, payload)) {
|
|
714
776
|
return { busy: readLockInfo(p) ?? initializingLockInfo(p) };
|
|
715
777
|
}
|
|
716
|
-
return { handle: makeHandle(p, info) };
|
|
778
|
+
return { handle: makeHandle(p, info, installSignalHandlers) };
|
|
717
779
|
}
|
|
718
780
|
finally {
|
|
719
781
|
admission.handle.release();
|
|
720
782
|
}
|
|
721
783
|
}
|
|
722
|
-
function tryAcquireGate(mode, p, info, payload) {
|
|
784
|
+
function tryAcquireGate(mode, p, info, payload, isHolderLive, installSignalHandlers = true) {
|
|
723
785
|
return mode === "shared"
|
|
724
|
-
? tryAcquireShared(p, info, payload)
|
|
725
|
-
: tryAcquireExclusive(p, info, payload);
|
|
786
|
+
? tryAcquireShared(p, info, payload, installSignalHandlers)
|
|
787
|
+
: tryAcquireExclusive(p, info, payload, isHolderLive, installSignalHandlers);
|
|
726
788
|
}
|
|
727
789
|
/** Acquire the operation gate synchronously. Watch-loop probes always pass a
|
|
728
790
|
* zero timeout; all wait-capable parent paths use the async counterpart below. */
|
|
729
791
|
export function acquireOperationLock(hqRoot, command, opts = {}) {
|
|
730
|
-
if (process.env.HQ_DISABLE_OP_LOCK === "1")
|
|
792
|
+
if (process.env.HQ_DISABLE_OP_LOCK === "1" && !opts.required) {
|
|
731
793
|
return disabledHandle(hqRoot, command);
|
|
794
|
+
}
|
|
732
795
|
const mode = operationMode(command, opts);
|
|
733
|
-
const { p, info, payload } = prepareLock(hqRoot, command, opts.scope, mode);
|
|
796
|
+
const { p, info, payload } = prepareLock(hqRoot, command, opts.scope, mode, opts.owner, opts.version);
|
|
734
797
|
const cfg = resolveWaitConfig(opts);
|
|
735
798
|
const deadline = cfg.timeoutMs === null ? null : Date.now() + cfg.timeoutMs;
|
|
736
799
|
let announced = false;
|
|
@@ -739,7 +802,7 @@ export function acquireOperationLock(hqRoot, command, opts = {}) {
|
|
|
739
802
|
const waiterPath = mode === "exclusive" && cfg.timeoutMs !== 0 ? registerWaiter(p, payload) : null;
|
|
740
803
|
try {
|
|
741
804
|
for (;;) {
|
|
742
|
-
const res = tryAcquireGate(mode, p, info, payload);
|
|
805
|
+
const res = tryAcquireGate(mode, p, info, payload, opts.isHolderLive, opts.installSignalHandlers !== false);
|
|
743
806
|
if ("handle" in res)
|
|
744
807
|
return res.handle;
|
|
745
808
|
if (remainingMs(deadline) <= 0)
|
|
@@ -758,17 +821,18 @@ export function acquireOperationLock(hqRoot, command, opts = {}) {
|
|
|
758
821
|
/** Async gate acquisition. This is the only wait-capable path used by the
|
|
759
822
|
* parent watch loop, so maintenance waits never block watcher heartbeats. */
|
|
760
823
|
export async function acquireOperationLockAsync(hqRoot, command, opts = {}) {
|
|
761
|
-
if (process.env.HQ_DISABLE_OP_LOCK === "1")
|
|
824
|
+
if (process.env.HQ_DISABLE_OP_LOCK === "1" && !opts.required) {
|
|
762
825
|
return disabledHandle(hqRoot, command);
|
|
826
|
+
}
|
|
763
827
|
const mode = operationMode(command, opts);
|
|
764
|
-
const { p, info, payload } = prepareLock(hqRoot, command, opts.scope, mode);
|
|
828
|
+
const { p, info, payload } = prepareLock(hqRoot, command, opts.scope, mode, opts.owner, opts.version);
|
|
765
829
|
const cfg = resolveWaitConfig(opts);
|
|
766
830
|
const deadline = cfg.timeoutMs === null ? null : Date.now() + cfg.timeoutMs;
|
|
767
831
|
let announced = false;
|
|
768
832
|
const waiterPath = mode === "exclusive" && cfg.timeoutMs !== 0 ? registerWaiter(p, payload) : null;
|
|
769
833
|
try {
|
|
770
834
|
for (;;) {
|
|
771
|
-
const res = tryAcquireGate(mode, p, info, payload);
|
|
835
|
+
const res = tryAcquireGate(mode, p, info, payload, opts.isHolderLive, opts.installSignalHandlers !== false);
|
|
772
836
|
if ("handle" in res)
|
|
773
837
|
return res.handle;
|
|
774
838
|
if (remainingMs(deadline) <= 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation-lock.js","sourceRoot":"","sources":["../src/operation-lock.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"operation-lock.js","sourceRoot":"","sources":["../src/operation-lock.ts"],"names":[],"mappings":"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"}
|