@cotal-ai/core 0.19.0 → 0.20.1
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/endpoint-grants.d.ts +13 -4
- package/dist/endpoint-grants.d.ts.map +1 -1
- package/dist/endpoint-grants.js +23 -8
- package/dist/endpoint-grants.js.map +1 -1
- package/dist/endpoint-invoke.d.ts +5 -1
- package/dist/endpoint-invoke.d.ts.map +1 -1
- package/dist/endpoint-invoke.js.map +1 -1
- package/dist/endpoint-records.d.ts +11 -0
- package/dist/endpoint-records.d.ts.map +1 -1
- package/dist/endpoint-records.js +20 -0
- package/dist/endpoint-records.js.map +1 -1
- package/dist/endpoint-service.d.ts +53 -0
- package/dist/endpoint-service.d.ts.map +1 -1
- package/dist/endpoint-service.js +93 -4
- package/dist/endpoint-service.js.map +1 -1
- package/dist/endpoint-verbs.d.ts +53 -0
- package/dist/endpoint-verbs.d.ts.map +1 -1
- package/dist/endpoint-verbs.js +128 -12
- package/dist/endpoint-verbs.js.map +1 -1
- package/package.json +1 -1
package/dist/endpoint-service.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { spacePrefix, principalKey } from "./subjects.js";
|
|
2
2
|
import { endpointToken, assertBoundedOwner, assertLifecycleToken, assertCommandToken, assertPoolToken, } from "./endpoint-subjects.js";
|
|
3
3
|
import { EpEnvelopeError } from "./endpoint-envelope.js";
|
|
4
|
-
import { RECORD_KINDS, GOVERN_HEAD, recordSpecKey, recordStatusKey, recordAtomicKey, readRecord, recordsBucket, createRecordEntry, updateRecordEntry, assertStatusValue, } from "./endpoint-records.js";
|
|
4
|
+
import { RECORD_KINDS, GOVERN_HEAD, recordSpecKey, recordStatusKey, recordAtomicKey, readRecord, recordsBucket, createRecordEntry, updateRecordEntry, deleteRecordEntry, assertStatusValue, } from "./endpoint-records.js";
|
|
5
5
|
import { verifyClusterManifest, verifyClusterRoot, deriveDescriptor, GOVERNED_TRAIT_URNS } from "./endpoint-cluster.js";
|
|
6
6
|
import { isSupervisorWrite } from "./endpoint-supervisor.js";
|
|
7
7
|
/** The convergence states the SPEC keys on (§13.6 item 6). */
|
|
@@ -425,7 +425,21 @@ export async function registerServiceInstance(kv, args) {
|
|
|
425
425
|
// genuinely infra/ambiguous — never a concurrent-CAS loss we could treat as a definite no-write.
|
|
426
426
|
let newRev;
|
|
427
427
|
try {
|
|
428
|
-
|
|
428
|
+
// A DEREGISTRATION TOMBSTONE IS RE-REGISTRABLE, and it is the only record kind here that is.
|
|
429
|
+
// `createRecordEntry` fences against the key's entire history, so a create over a DEL marker is
|
|
430
|
+
// a loud conflict — correct for the never-deleted lifecycle families, and fatal here: §13.5
|
|
431
|
+
// makes a deleted spec an EXPLICIT deregistration ({@link deregisterServiceInstance}), so a
|
|
432
|
+
// manager that deregisters on a clean stop could never start again. The tombstone is therefore
|
|
433
|
+
// written OVER, revision-pinned to the marker's own revision, which is still a CAS and still
|
|
434
|
+
// refuses a blind write.
|
|
435
|
+
//
|
|
436
|
+
// Reusing the id is safe because the records key was never what bound it: §13.1 binds the
|
|
437
|
+
// lifecycle to the ISSUANCE GATE, which this registration has already observed (a `retired`
|
|
438
|
+
// gate refuses above, and the gate's principal binding is unchanged by a records delete), and
|
|
439
|
+
// the (name, owner) pair is authorized fresh under the frozen gate. What a tombstone loses is
|
|
440
|
+
// the stored-owner comparison two branches up — it has no value to compare — and that check is
|
|
441
|
+
// a defence-in-depth read of the same fact the name authority decides.
|
|
442
|
+
newRev = current
|
|
429
443
|
? await updateRecordEntry(kv, key, spec, current.revision)
|
|
430
444
|
: await createRecordEntry(kv, key, spec);
|
|
431
445
|
}
|
|
@@ -456,7 +470,13 @@ export async function registerServiceInstance(kv, args) {
|
|
|
456
470
|
// bites on a real restart). A FIRST registration keeps the provisioned epoch (0), so a single
|
|
457
471
|
// never-restarted instance stays at epoch 0. The advance rides THIS completing reopen only; the
|
|
458
472
|
// old family was already revoked + verify-evicted in PHASE 2, so no old-epoch authority survives.
|
|
459
|
-
|
|
473
|
+
// A DEREGISTRATION TOMBSTONE COUNTS AS A PRIOR INCARNATION. The question this predicate asks is
|
|
474
|
+
// "did an incarnation of this instanceId exist before me", and a DEL marker answers yes exactly as
|
|
475
|
+
// a live spec does — the deregistration is what removed it. Reading only `PUT` here would let a
|
|
476
|
+
// stop-then-start pair re-register at the PREDECESSOR's epoch, so a predecessor process that
|
|
477
|
+
// outlived its own deregistration would still hold a current-epoch authority. TRUE ABSENCE (never
|
|
478
|
+
// registered) is the only case that keeps the provisioned epoch.
|
|
479
|
+
const isReRegistration = current !== undefined && current !== null;
|
|
460
480
|
try {
|
|
461
481
|
if (!(await args.barrier.reopen(token, successorAt(newRev, isReRegistration ? obs.processEpoch + 1 : obs.processEpoch))))
|
|
462
482
|
throw new Error("the reopen CAS lost its freeze token (a reconciler or newer barrier superseded this one)");
|
|
@@ -576,7 +596,76 @@ export async function writeServiceStatus(kv, args) {
|
|
|
576
596
|
}
|
|
577
597
|
return updateRecordEntry(kv, key, status, stored.revision);
|
|
578
598
|
}
|
|
579
|
-
|
|
599
|
+
// A DEREGISTRATION TOMBSTONE on the STATUS key is written over too, and for the same reason the
|
|
600
|
+
// spec key's is (see {@link registerServiceInstance}): §13.5 deletes BOTH keys, so a create-only
|
|
601
|
+
// write here would let the spec come back on a restart while the status never could — the
|
|
602
|
+
// instance would register and then be unable to converge, which reads to every scatter as
|
|
603
|
+
// "registered but never live" and to the operator as a manager that starts and does nothing.
|
|
604
|
+
// Still a CAS, pinned to the marker's own revision; only TRUE ABSENCE creates.
|
|
605
|
+
return stored ? updateRecordEntry(kv, key, status, stored.revision) : createRecordEntry(kv, key, status);
|
|
606
|
+
}
|
|
607
|
+
/**
|
|
608
|
+
* DEREGISTER one service instance: the §13.5 explicit deregistration, which is the DELETE of its
|
|
609
|
+
* `svc` spec key (and its status key with it).
|
|
610
|
+
*
|
|
611
|
+
* WHY THIS EXISTS AT ALL. The registry records REGISTRATION, not liveness, and nothing in the model
|
|
612
|
+
* expires a row. An instance whose host dies leaves a record that claims a live state forever, and
|
|
613
|
+
* every class scatter in the space then freezes that slot in and waits out the full deadline for an
|
|
614
|
+
* answer that can never come. Registration therefore needs a way OUT that does not depend on the
|
|
615
|
+
* dead instance's cooperation, and this is it. There is deliberately no automatic sweep behind it:
|
|
616
|
+
* the two callers are an instance removing its OWN row on a clean stop, and an operator naming a
|
|
617
|
+
* hard-dead instance explicitly.
|
|
618
|
+
*
|
|
619
|
+
* ORDER IS PART OF THE CONTRACT: status first, then spec. A reader that catches the pair mid-delete
|
|
620
|
+
* sees "spec without status", which §13.4 already defines (an instance registered but not converged;
|
|
621
|
+
* {@link freezeExpectedSet} skips it) and which {@link readRecord} reads cleanly. The other order
|
|
622
|
+
* produces "status without spec", which is the TORN state readers refuse — a deregistration would
|
|
623
|
+
* hand every concurrent reader a `failed-precondition` for the width of one round trip.
|
|
624
|
+
*
|
|
625
|
+
* BOTH DELETES ARE REVISION-PINNED to what this function just read. A blind delete of a registration
|
|
626
|
+
* is a delete of whatever is there NOW, and what is there now may be a successor that re-registered
|
|
627
|
+
* microseconds ago under the same instanceId — exactly the case a restart produces. A moved key
|
|
628
|
+
* aborts with `superseded` and removes nothing.
|
|
629
|
+
*
|
|
630
|
+
* THE RECOVERY PATH, because a deregistration must never be a one-way door: the record is removed,
|
|
631
|
+
* the §13.1 issuance gate is NOT. The same instance can register again and does so on its next
|
|
632
|
+
* start — {@link registerServiceInstance} writes over the tombstone under a revision-pinned CAS and
|
|
633
|
+
* advances the epoch as it does for any other restart.
|
|
634
|
+
*/
|
|
635
|
+
export async function deregisterServiceInstance(kv, args) {
|
|
636
|
+
const iId = assertLifecycleToken(args.instanceId, "instanceId");
|
|
637
|
+
const specKey = recordSpecKey(RECORD_KINDS.svc, [args.endpoint, iId]);
|
|
638
|
+
const statusKey = recordStatusKey(RECORD_KINDS.svc, [args.endpoint, iId]);
|
|
639
|
+
const specEntry = await kv.get(specKey);
|
|
640
|
+
if (!specEntry || specEntry.operation !== "PUT")
|
|
641
|
+
return { removed: false, reason: "absent" };
|
|
642
|
+
const statusEntry = await kv.get(statusKey);
|
|
643
|
+
const casLoss = (e) => e instanceof EpEnvelopeError && e.code === "conflict";
|
|
644
|
+
let statusRevision;
|
|
645
|
+
if (statusEntry && statusEntry.operation === "PUT") {
|
|
646
|
+
try {
|
|
647
|
+
await deleteRecordEntry(kv, statusKey, statusEntry.revision);
|
|
648
|
+
statusRevision = statusEntry.revision;
|
|
649
|
+
}
|
|
650
|
+
catch (e) {
|
|
651
|
+
if (casLoss(e))
|
|
652
|
+
return { removed: false, reason: "superseded" }; // it wrote a status: it is alive
|
|
653
|
+
throw e;
|
|
654
|
+
}
|
|
655
|
+
}
|
|
656
|
+
try {
|
|
657
|
+
await deleteRecordEntry(kv, specKey, specEntry.revision);
|
|
658
|
+
}
|
|
659
|
+
catch (e) {
|
|
660
|
+
// The status is already gone. That is the deliberate direction of this partial state: the
|
|
661
|
+
// instance is absent from every scatter freeze (a spec with no status is not a live member) and
|
|
662
|
+
// its own next registration rewrites both keys. Reported as `superseded` so the caller says so
|
|
663
|
+
// rather than claiming a removal it did not complete.
|
|
664
|
+
if (casLoss(e))
|
|
665
|
+
return { removed: false, reason: "superseded" };
|
|
666
|
+
throw e;
|
|
667
|
+
}
|
|
668
|
+
return { removed: true, specRevision: specEntry.revision, ...(statusRevision !== undefined ? { statusRevision } : {}) };
|
|
580
669
|
}
|
|
581
670
|
/** Freeze the request-scoped expected set (§13.5): the LIVE instances of a class from the
|
|
582
671
|
* service registry at send time — VALIDATED registered spec, status present and caught up to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint-service.js","sourceRoot":"","sources":["../src/endpoint-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"endpoint-service.js","sourceRoot":"","sources":["../src/endpoint-service.ts"],"names":[],"mappings":"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"}
|
package/dist/endpoint-verbs.d.ts
CHANGED
|
@@ -41,6 +41,34 @@ export interface EpVerbOp {
|
|
|
41
41
|
* always equals the broker-authenticated sender principal (§13.3). */
|
|
42
42
|
name?: string;
|
|
43
43
|
}
|
|
44
|
+
/** What a liveness probe can establish about ONE frozen instance (§13.5). Only `gone` is an
|
|
45
|
+
* AFFIRMATIVE fact — the broker itself reporting that the instance holds no subscription on its
|
|
46
|
+
* own rail. `live` and `unknown` are handled identically by the gather: they license nothing and
|
|
47
|
+
* the full deadline stands. There is deliberately NO verdict for "its presence entry expired":
|
|
48
|
+
* a lapsed heartbeat is absence of evidence, and reading absence of evidence as death is how a
|
|
49
|
+
* slow correct answer becomes a fast wrong one. */
|
|
50
|
+
export type EpInstanceLiveness = "gone" | "live" | "unknown";
|
|
51
|
+
/**
|
|
52
|
+
* Ask the BROKER whether one instance still holds a subscription on its own `inst` rail (§13.2).
|
|
53
|
+
*
|
|
54
|
+
* A serving incarnation subscribes `ep.inst.<endpoint>.<instanceId>.<command>.>` for every command
|
|
55
|
+
* it serves, so a request published there with a reply-to only the broker can reach either draws
|
|
56
|
+
* the broker's no-responders 503 — an affirmative statement that this instance holds no
|
|
57
|
+
* subscription — or draws nothing at all.
|
|
58
|
+
*
|
|
59
|
+
* NOTHING IS `unknown`, NEVER DEATH. A denied publish, a slow broker, a responder that receives the
|
|
60
|
+
* request and declines to answer, and a perfectly healthy instance are indistinguishable from here,
|
|
61
|
+
* and every one of them must keep the caller waiting. The failure direction is the whole safety
|
|
62
|
+
* argument: because only a 503 says anything, a short probe budget can never turn a live instance
|
|
63
|
+
* into a fast `missing` — it can only fail to speed up a dead one.
|
|
64
|
+
*
|
|
65
|
+
* It rides `describe` because §13.7 makes every endpoint serve it and it carries no effect, and it
|
|
66
|
+
* rides as a CAST: the verdict comes from the transport, not from an answer, so nothing is read and
|
|
67
|
+
* an instance whose describe is broken still reads as present.
|
|
68
|
+
*/
|
|
69
|
+
export declare function epProbeInstanceInterest(nc: NatsConnection, space: string, endpoint: string, instanceId: string, caller: EpCaller, opts: {
|
|
70
|
+
deadlineMs: number;
|
|
71
|
+
}): Promise<EpInstanceLiveness>;
|
|
44
72
|
/** One attributed reply: the structural attribution comes from the reply SUBJECT (§13.2), never
|
|
45
73
|
* from the body. */
|
|
46
74
|
export interface EpAttributedReply {
|
|
@@ -242,6 +270,16 @@ export type EpRegistrationState = {
|
|
|
242
270
|
* - `reconcileDeadlineMs` (optional, default `deadlineMs`): the explicit bound on that post-T read,
|
|
243
271
|
* named so the single `deadlineMs` is not silently spent twice.
|
|
244
272
|
* - `lateDrainMs` (optional): the absolute post-T horizon for `late` classification. Omitted → none.
|
|
273
|
+
* - `probeLiveness` (optional): affirmative per-instance liveness, run concurrently with the gather.
|
|
274
|
+
* The gather's only exits are "every frozen slot answered" and the deadline, so a slot that CANNOT
|
|
275
|
+
* answer makes the first unreachable and the deadline is paid in full — every scatter in the space,
|
|
276
|
+
* forever, because the registry has no expiry and a crashed instance never deregisters. This hook
|
|
277
|
+
* supplies the missing fact. It moves the classification point T EARLIER and moves NOTHING else:
|
|
278
|
+
* a slot the broker affirms is gone is still `missing`, still surfaced, still not `complete`.
|
|
279
|
+
* ONLY the verdict `gone` licenses anything; `live`, `unknown`, a throwing hook, and any value
|
|
280
|
+
* outside the closed set all license nothing and leave the full deadline standing. That asymmetry
|
|
281
|
+
* is deliberate and is the safety argument: a broken or lying-quiet probe degrades to exactly
|
|
282
|
+
* today's behavior, never to a fast wrong answer.
|
|
245
283
|
*/
|
|
246
284
|
export declare function epScatter(nc: NatsConnection, space: string, op: EpVerbOp, opts: {
|
|
247
285
|
deadlineMs: number;
|
|
@@ -249,6 +287,7 @@ export declare function epScatter(nc: NatsConnection, space: string, op: EpVerbO
|
|
|
249
287
|
reconcileRegistration: () => Promise<Map<string, EpRegistrationState>>;
|
|
250
288
|
reconcileDeadlineMs?: number;
|
|
251
289
|
lateDrainMs?: number;
|
|
290
|
+
probeLiveness?: (instanceId: string) => Promise<EpInstanceLiveness>;
|
|
252
291
|
}): Promise<EpScatterResult>;
|
|
253
292
|
/**
|
|
254
293
|
* Scatter one command to the LIVE class (§13.5), registry-wired end to end: freeze the expected
|
|
@@ -264,6 +303,20 @@ export declare function epScatterService(nc: NatsConnection, jsm: JetStreamManag
|
|
|
264
303
|
deadlineMs: number;
|
|
265
304
|
reconcileDeadlineMs?: number;
|
|
266
305
|
lateDrainMs?: number;
|
|
306
|
+
/** The §13.5 liveness hook, FORWARDED from the caller and never invented here.
|
|
307
|
+
*
|
|
308
|
+
* This function knows the frozen set only AFTER the freeze, so an auto-probe built in here
|
|
309
|
+
* would publish on instance rails the caller may hold no grant for, and a refused publish is
|
|
310
|
+
* invisible to it: the broker's violation lands on the CONNECTION, the probe just times out,
|
|
311
|
+
* and the operation reports `unknown` — the exact "slow" reading of a permission bug this
|
|
312
|
+
* whole change exists to stop. The caller is the only layer that knows which rails its
|
|
313
|
+
* credential carries, so the caller supplies the closure (and, with it, its own budget and its
|
|
314
|
+
* own violation reporting). Omitted ⇒ no probe, and the gather is bit-for-bit the pre-#468
|
|
315
|
+
* deadline behaviour.
|
|
316
|
+
*
|
|
317
|
+
* {@link epProbeInstanceInterest} is the ready-made implementation; a caller pins it to its
|
|
318
|
+
* own grant set. */
|
|
319
|
+
probeLiveness?: (instanceId: string) => Promise<EpInstanceLiveness>;
|
|
267
320
|
}): Promise<EpScatterResult>;
|
|
268
321
|
/**
|
|
269
322
|
* Call one command with the registry-wired currency check (§13.2): on the `one` rail the queue
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint-verbs.d.ts","sourceRoot":"","sources":["../src/endpoint-verbs.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAO,cAAc,EAAgB,MAAM,yBAAyB,CAAC;AAEjF,OAAO,EAEL,KAAK,QAAQ,EAAE,KAAK,OAAO,EAC5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,eAAe,EACO,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EACF,KAAK,WAAW,EAC/F,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAiE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI3H;;wFAEwF;AACxF,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5I;;iEAEiE;AACjE,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE;QAAE,KAAK,EAAE,gBAAgB,CAAC;QAAC,MAAM,EAAE,gBAAgB,CAAA;KAAE,CAAC;IAChE,MAAM,EAAE,QAAQ,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;qGAEiG;IACjG,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;2EACuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;
|
|
1
|
+
{"version":3,"file":"endpoint-verbs.d.ts","sourceRoot":"","sources":["../src/endpoint-verbs.ts"],"names":[],"mappings":"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"}
|
package/dist/endpoint-verbs.js
CHANGED
|
@@ -99,6 +99,65 @@ function isNoRespondersMsg(msg) {
|
|
|
99
99
|
const h = msg.headers;
|
|
100
100
|
return h != null && (h.code === 503 || h.status === "503");
|
|
101
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* Ask the BROKER whether one instance still holds a subscription on its own `inst` rail (§13.2).
|
|
104
|
+
*
|
|
105
|
+
* A serving incarnation subscribes `ep.inst.<endpoint>.<instanceId>.<command>.>` for every command
|
|
106
|
+
* it serves, so a request published there with a reply-to only the broker can reach either draws
|
|
107
|
+
* the broker's no-responders 503 — an affirmative statement that this instance holds no
|
|
108
|
+
* subscription — or draws nothing at all.
|
|
109
|
+
*
|
|
110
|
+
* NOTHING IS `unknown`, NEVER DEATH. A denied publish, a slow broker, a responder that receives the
|
|
111
|
+
* request and declines to answer, and a perfectly healthy instance are indistinguishable from here,
|
|
112
|
+
* and every one of them must keep the caller waiting. The failure direction is the whole safety
|
|
113
|
+
* argument: because only a 503 says anything, a short probe budget can never turn a live instance
|
|
114
|
+
* into a fast `missing` — it can only fail to speed up a dead one.
|
|
115
|
+
*
|
|
116
|
+
* It rides `describe` because §13.7 makes every endpoint serve it and it carries no effect, and it
|
|
117
|
+
* rides as a CAST: the verdict comes from the transport, not from an answer, so nothing is read and
|
|
118
|
+
* an instance whose describe is broken still reads as present.
|
|
119
|
+
*/
|
|
120
|
+
export async function epProbeInstanceInterest(nc, space, endpoint, instanceId, caller, opts) {
|
|
121
|
+
const deadlineMs = assertDeadline(opts.deadlineMs);
|
|
122
|
+
const iId = assertLifecycleToken(instanceId, "instanceId");
|
|
123
|
+
const n = nonce();
|
|
124
|
+
const subject = epRequestSubject(space, { route: { mode: "inst", instanceId: iId }, endpoint, command: "describe", caller, nonce: n });
|
|
125
|
+
const env = {
|
|
126
|
+
v: 1, id: nonce(), op: { endpoint, command: "describe" }, class: "ephemeral",
|
|
127
|
+
replyExpected: false, from: { id: `${caller.owner}.${caller.actor}`, name: caller.actor },
|
|
128
|
+
};
|
|
129
|
+
// The SAME reserved sentinel `epCall` uses, for the same reason: no responder holds a publish
|
|
130
|
+
// grant for the `_nr._nr._nr` reply subject (§13.9), so a 503 arriving there is the broker's own
|
|
131
|
+
// control frame and cannot be forged by a recipient that knows the nonce.
|
|
132
|
+
const noRespReplyTo = `${spacePrefix(space)}.ep.reply._nr._nr._nr.${callerTokens(caller).join(".")}.${n}`;
|
|
133
|
+
let sub;
|
|
134
|
+
let timer;
|
|
135
|
+
try {
|
|
136
|
+
return await new Promise((resolve) => {
|
|
137
|
+
timer = setTimeout(() => resolve("unknown"), deadlineMs);
|
|
138
|
+
// A PROBE MUST NEVER BE THE REASON A PROCESS IS STILL RUNNING. Against a LIVE instance no
|
|
139
|
+
// answer ever comes back — the request is a cast and §13.5 forbids the responder replying to
|
|
140
|
+
// one — so this timer runs its full budget on every healthy instance, every time. Wired into
|
|
141
|
+
// `cotal ps` that was measured at 4.0 extra seconds AFTER the last row was printed (12.8s
|
|
142
|
+
// with the probe against 8.8s without it, on a healthy two-manager mesh): the gather had long
|
|
143
|
+
// since finished, and the only verdict that changes anything is `gone`, which a caller who
|
|
144
|
+
// has already gathered can no longer use. Unref makes the timer stop holding the loop open
|
|
145
|
+
// WITHOUT changing the probe: it still settles `unknown` at the budget for anyone still
|
|
146
|
+
// waiting on it, because the connection this needs is itself an open handle, and a caller
|
|
147
|
+
// still using that connection is therefore still running.
|
|
148
|
+
timer.unref?.();
|
|
149
|
+
sub = nc.subscribe(noRespReplyTo, {
|
|
150
|
+
callback: (err, msg) => { resolve(err === null && isNoRespondersMsg(msg) ? "gone" : "unknown"); },
|
|
151
|
+
});
|
|
152
|
+
nc.publish(subject, new TextEncoder().encode(JSON.stringify(env)), { reply: noRespReplyTo });
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
finally {
|
|
156
|
+
sub?.unsubscribe();
|
|
157
|
+
if (timer !== undefined)
|
|
158
|
+
clearTimeout(timer);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
102
161
|
/** Race a caller-supplied read against a bounded budget so a never-settling hook cannot exceed the
|
|
103
162
|
* operation deadline (SPEC 13.5: deadline mandatory). Clears its timer on either outcome. */
|
|
104
163
|
async function raceBounded(read, ms, what, details) {
|
|
@@ -430,6 +489,16 @@ export function epWatchEvents(nc, space, filter, handlers) {
|
|
|
430
489
|
* - `reconcileDeadlineMs` (optional, default `deadlineMs`): the explicit bound on that post-T read,
|
|
431
490
|
* named so the single `deadlineMs` is not silently spent twice.
|
|
432
491
|
* - `lateDrainMs` (optional): the absolute post-T horizon for `late` classification. Omitted → none.
|
|
492
|
+
* - `probeLiveness` (optional): affirmative per-instance liveness, run concurrently with the gather.
|
|
493
|
+
* The gather's only exits are "every frozen slot answered" and the deadline, so a slot that CANNOT
|
|
494
|
+
* answer makes the first unreachable and the deadline is paid in full — every scatter in the space,
|
|
495
|
+
* forever, because the registry has no expiry and a crashed instance never deregisters. This hook
|
|
496
|
+
* supplies the missing fact. It moves the classification point T EARLIER and moves NOTHING else:
|
|
497
|
+
* a slot the broker affirms is gone is still `missing`, still surfaced, still not `complete`.
|
|
498
|
+
* ONLY the verdict `gone` licenses anything; `live`, `unknown`, a throwing hook, and any value
|
|
499
|
+
* outside the closed set all license nothing and leave the full deadline standing. That asymmetry
|
|
500
|
+
* is deliberate and is the safety argument: a broken or lying-quiet probe degrades to exactly
|
|
501
|
+
* today's behavior, never to a fast wrong answer.
|
|
433
502
|
*/
|
|
434
503
|
export async function epScatter(nc, space, op, opts) {
|
|
435
504
|
const deadlineMs = assertDeadline(opts.deadlineMs);
|
|
@@ -457,6 +526,7 @@ export async function epScatter(nc, space, op, opts) {
|
|
|
457
526
|
const terminal = new Set(); // frozen slots with a VALID frozen-epoch reply (drives early completion)
|
|
458
527
|
const seen = new Set(); // "(instanceId,epoch)" pairs already classified non-invalid (drives §13.5 duplicate)
|
|
459
528
|
const responded = new Set(); // frozen slots that produced ANY reply (live)
|
|
529
|
+
const gone = new Set(); // frozen slots the BROKER affirmed hold no subscription
|
|
460
530
|
const regChurned = new Set();
|
|
461
531
|
const failMsg = (e) => (e instanceof Error ? e.message : String(e));
|
|
462
532
|
let respondedAtDeadline; // `responded` snapshotted at the classification point
|
|
@@ -520,30 +590,73 @@ export async function epScatter(nc, space, op, opts) {
|
|
|
520
590
|
seen.add(key);
|
|
521
591
|
return terminal.size === frozen.size;
|
|
522
592
|
};
|
|
593
|
+
// NOTHING outstanding can still answer: every frozen slot has either produced a valid reply or been
|
|
594
|
+
// affirmed gone by the broker. Checked on BOTH events that can make it true — a verdict landing and
|
|
595
|
+
// a reply landing — because the last thing to settle is as often the live peer's slow answer as it
|
|
596
|
+
// is the corpse's verdict, and a check that ran only on verdicts would leave the common case (one
|
|
597
|
+
// corpse affirmed immediately, one live instance answering a second later) paying the full deadline.
|
|
598
|
+
const settled = () => {
|
|
599
|
+
for (const id of frozen.keys())
|
|
600
|
+
if (!terminal.has(id) && !gone.has(id))
|
|
601
|
+
return false;
|
|
602
|
+
return true;
|
|
603
|
+
};
|
|
523
604
|
let sub;
|
|
524
|
-
// Phase 1 — gather to the classification point T = min(all-valid, deadline). NO
|
|
525
|
-
// is a later observational phase so it can never move the classification.
|
|
605
|
+
// Phase 1 — gather to the classification point T = min(all-valid, all-accounted-for, deadline). NO
|
|
606
|
+
// drain here; the drain is a later observational phase so it can never move the classification.
|
|
526
607
|
await new Promise((resolve) => {
|
|
608
|
+
let ended = false;
|
|
527
609
|
const finishAtT = () => { if (respondedAtDeadline === undefined)
|
|
528
610
|
respondedAtDeadline = new Set(responded); };
|
|
529
|
-
|
|
611
|
+
// `incomplete` marks the two exits at which some frozen slot did NOT answer, so the post-T rail
|
|
612
|
+
// stays open for a straggler and classifies it `late` rather than dropping it. Early completion
|
|
613
|
+
// (every slot answered) is not one of them: there is nothing left to be late.
|
|
614
|
+
const finish = (incomplete) => {
|
|
615
|
+
if (ended)
|
|
616
|
+
return;
|
|
617
|
+
ended = true;
|
|
618
|
+
if (incomplete)
|
|
619
|
+
deadlinePassed = true;
|
|
620
|
+
finishAtT();
|
|
621
|
+
clearTimeout(timer);
|
|
622
|
+
resolve();
|
|
623
|
+
};
|
|
624
|
+
const timer = setTimeout(() => finish(true), deadlineMs);
|
|
530
625
|
sub = nc.subscribe(replySubjectFor(space, op.caller, req.n), {
|
|
531
626
|
callback: (err, msg) => {
|
|
532
627
|
if (err) {
|
|
533
628
|
subError ??= err;
|
|
534
|
-
|
|
535
|
-
clearTimeout(timer);
|
|
536
|
-
resolve();
|
|
629
|
+
finish(false);
|
|
537
630
|
return;
|
|
538
631
|
} // fail loud, never fake `missing`
|
|
539
|
-
if (handle(msg.subject, msg.data))
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
}
|
|
632
|
+
if (handle(msg.subject, msg.data))
|
|
633
|
+
finish(false); // every slot answered: complete, nothing can be late
|
|
634
|
+
else if (settled())
|
|
635
|
+
finish(true); // the rest are affirmed gone: T is now
|
|
544
636
|
},
|
|
545
637
|
});
|
|
546
638
|
nc.publish(req.subject, req.body);
|
|
639
|
+
// AFFIRMATIVE liveness, concurrent with the gather and never gating it. A verdict can only end
|
|
640
|
+
// the gather EARLY; it can never extend it, and a probe still in flight at the deadline is
|
|
641
|
+
// simply irrelevant by then.
|
|
642
|
+
if (opts.probeLiveness !== undefined)
|
|
643
|
+
for (const instanceId of frozen.keys())
|
|
644
|
+
void (async () => {
|
|
645
|
+
let verdict;
|
|
646
|
+
// A probe that FAILED established nothing. Same rule as the verdicts below and for the
|
|
647
|
+
// same reason: only `gone` is evidence, everything else leaves the deadline standing.
|
|
648
|
+
try {
|
|
649
|
+
verdict = await opts.probeLiveness(instanceId);
|
|
650
|
+
}
|
|
651
|
+
catch {
|
|
652
|
+
return;
|
|
653
|
+
}
|
|
654
|
+
if (verdict !== "gone" || ended)
|
|
655
|
+
return;
|
|
656
|
+
gone.add(instanceId);
|
|
657
|
+
if (settled())
|
|
658
|
+
finish(true); // one corpse among live peers still waits for them
|
|
659
|
+
})();
|
|
547
660
|
});
|
|
548
661
|
let drainTimer;
|
|
549
662
|
try {
|
|
@@ -654,7 +767,10 @@ export async function epScatterService(nc, jsm, space, op, opts) {
|
|
|
654
767
|
const remaining = deadlineMs - (Date.now() - started);
|
|
655
768
|
if (remaining <= 0)
|
|
656
769
|
throw new EpEnvelopeError("deadline-exceeded", `the scatter freeze for ${op.endpoint} consumed the whole ${deadlineMs}ms budget; no time left to gather (SPEC 13.5)`, [registryReadDetail(op)]);
|
|
657
|
-
return epScatter(nc, space, op, {
|
|
770
|
+
return epScatter(nc, space, op, {
|
|
771
|
+
...opts, deadlineMs: remaining, expected,
|
|
772
|
+
reconcileRegistration: registrationReconciler(jsm, space, op.endpoint, expected),
|
|
773
|
+
});
|
|
658
774
|
}
|
|
659
775
|
/**
|
|
660
776
|
* Call one command with the registry-wired currency check (§13.2): on the `one` rail the queue
|