@cortexkit/subc-client 0.16.1 → 0.17.0
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/client.d.ts +33 -5
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +261 -44
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/client.ts +293 -48
- package/src/index.ts +1 -0
package/dist/client.d.ts
CHANGED
|
@@ -4,7 +4,8 @@ import { ReverseRequestRegistry, RouteHandle } from "./route-handle.js";
|
|
|
4
4
|
export declare const DEFAULT_REQUEST_TIMEOUT_MS = 30000;
|
|
5
5
|
export declare const TIMEOUT_ARBITRATION_GRACE_MS = 50;
|
|
6
6
|
export declare const LIVENESS_PROBE_WINDOW_MS = 2000;
|
|
7
|
-
export declare const ROUTE_OPEN_RETRY_DEADLINE_MS =
|
|
7
|
+
export declare const ROUTE_OPEN_RETRY_DEADLINE_MS = 90000;
|
|
8
|
+
export declare const MAX_ROUTE_OPENS_IN_FLIGHT = 8;
|
|
8
9
|
export declare const SUBC_MODULE_ID_ENV = "SUBC_MODULE_ID";
|
|
9
10
|
export declare const SUBC_LAUNCH_NONCE_ENV = "SUBC_LAUNCH_NONCE";
|
|
10
11
|
export interface BindIdentity {
|
|
@@ -229,12 +230,23 @@ export interface ConnectOptions {
|
|
|
229
230
|
reconnectBackoff?: ReconnectBackoff;
|
|
230
231
|
/** Injectable sleep for timer-free reconnect tests. */
|
|
231
232
|
sleep?: (ms: number) => Promise<void>;
|
|
233
|
+
/**
|
|
234
|
+
* Injectable clock (milliseconds) for the route.open retry deadline. Tests pair
|
|
235
|
+
* it with `sleep` so a minute-long module restart runs in fake time.
|
|
236
|
+
*/
|
|
237
|
+
now?: () => number;
|
|
238
|
+
/**
|
|
239
|
+
* Injectable random source in [0, 1) for route.open retry jitter, so tests can
|
|
240
|
+
* seed it. Defaults to Math.random.
|
|
241
|
+
*/
|
|
242
|
+
random?: () => number;
|
|
232
243
|
/**
|
|
233
244
|
* How long managed calls keep retrying route.open in-place on retryable
|
|
234
245
|
* refusals (module_reloading, module_warming, target_unavailable, …) before
|
|
235
|
-
* settling not_sent. This deadline
|
|
236
|
-
*
|
|
237
|
-
*
|
|
246
|
+
* settling not_sent. This deadline and the call's own timeoutMs (when set) are
|
|
247
|
+
* the only binders on those retries: a module restart legitimately keeps its
|
|
248
|
+
* routes refused for about a minute (drain, stop, boot), so the default is
|
|
249
|
+
* ROUTE_OPEN_RETRY_DEADLINE_MS.
|
|
238
250
|
*/
|
|
239
251
|
routeOpenRetryDeadlineMs?: number;
|
|
240
252
|
/**
|
|
@@ -305,9 +317,11 @@ export declare class SubcClient {
|
|
|
305
317
|
private closeStarted;
|
|
306
318
|
private reconnecting;
|
|
307
319
|
private generation;
|
|
320
|
+
private routeOpenGateInstance;
|
|
308
321
|
private readerActive;
|
|
309
322
|
private constructor();
|
|
310
323
|
get conn(): ConnectionInfo;
|
|
324
|
+
private get routeOpenGate();
|
|
311
325
|
/** Read the connection file, connect, authenticate, and start the read loop. */
|
|
312
326
|
static connect(opts: ConnectOptions): Promise<SubcClient>;
|
|
313
327
|
/** List modules subc knows about (channel-0 catalog.list). */
|
|
@@ -321,8 +335,14 @@ export declare class SubcClient {
|
|
|
321
335
|
resolveProvider(capability: string): Promise<string>;
|
|
322
336
|
/** Resolve every catalog claimant in deterministic module-id order. */
|
|
323
337
|
resolveProviders(capability: string): Promise<string[]>;
|
|
324
|
-
/**
|
|
338
|
+
/**
|
|
339
|
+
* Open a route and return its connection-bound immutable handle. At most
|
|
340
|
+
* MAX_ROUTE_OPENS_IN_FLIGHT opens are outstanding at once; further calls wait
|
|
341
|
+
* their turn.
|
|
342
|
+
*/
|
|
325
343
|
routeOpen(target: RouteTarget, identity: BindIdentity, opts?: RouteOpenOptions): Promise<RouteHandle>;
|
|
344
|
+
/** One route.open exchange. The caller holds a route-open gate slot. */
|
|
345
|
+
private sendRouteOpen;
|
|
326
346
|
/** Send a data-plane request on exactly the supplied route generation. */
|
|
327
347
|
request(handle: RouteHandle, body: unknown, opts?: RequestOptions): Promise<unknown>;
|
|
328
348
|
/**
|
|
@@ -382,7 +402,15 @@ export declare class SubcClient {
|
|
|
382
402
|
private managedRequest;
|
|
383
403
|
private sendManaged;
|
|
384
404
|
private cachedRouteHandle;
|
|
405
|
+
private awaitOpeningUntil;
|
|
385
406
|
private openCachedRoute;
|
|
407
|
+
/**
|
|
408
|
+
* The not_sent error for a route.open whose retry deadline ran out. Its code
|
|
409
|
+
* and cause are the most recent refusal, as they always were; its message
|
|
410
|
+
* describes the most informative refusal seen, so a module that was reloading
|
|
411
|
+
* is not reported as admission pressure on the client's own connection.
|
|
412
|
+
*/
|
|
413
|
+
private routeOpenRetryExhausted;
|
|
386
414
|
private lastInboundAtMs;
|
|
387
415
|
private livenessProbe;
|
|
388
416
|
/**
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAeA,OAAO,EAA2C,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EACL,cAAc,EAMd,QAAQ,EAGT,MAAM,eAAe,CAAC;AACvB,OAAO,EAKL,sBAAsB,EACtB,WAAW,EAGZ,MAAM,mBAAmB,CAAC;AAc3B,eAAO,MAAM,0BAA0B,QAAS,CAAC;AAWjD,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAC/C,eAAO,MAAM,wBAAwB,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAeA,OAAO,EAA2C,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EACL,cAAc,EAMd,QAAQ,EAGT,MAAM,eAAe,CAAC;AACvB,OAAO,EAKL,sBAAsB,EACtB,WAAW,EAGZ,MAAM,mBAAmB,CAAC;AAc3B,eAAO,MAAM,0BAA0B,QAAS,CAAC;AAWjD,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAC/C,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAuB7C,eAAO,MAAM,4BAA4B,QAAS,CAAC;AAOnD,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAM3C,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AACnD,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AAEzD,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAExE,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,eAAe,CAAC;AAEtE,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,sNAAsN;IACtN,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC3C;;;OAGG;IACH,eAAe,CAAC,EAAE,sBAAsB,CAAC;CAC1C;AAED,MAAM,WAAW,4BAA4B;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,UAAU,GAAG,UAAU,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,4BAA4B,EAAE,CAAC;IACzC,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,yEAAyE;AACzE,MAAM,MAAM,mBAAmB,GAC3B,gBAAgB,GAChB;IAAE,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAEjC,uDAAuD;AACvD,MAAM,MAAM,oBAAoB,GAC5B;IAAE,OAAO,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACpC;IAAE,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAEpC,4EAA4E;AAC5E,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,WAAW,EAAE,mBAAmB,CAAC;IACjC,OAAO,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC1C,+EAA+E;IAC/E,YAAY,CAAC,EAAE,4BAA4B,EAAE,GAAG,IAAI,CAAC;CACtD;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iFAAiF;IACjF,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,sNAAsN;IACtN,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC3C,2FAA2F;IAC3F,eAAe,CAAC,EAAE,sBAAsB,CAAC;CAC1C;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,UAAU,CAAC;AAElD,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IACjE,0DAA0D;IAC1D,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC3C,6EAA6E;IAC7E,eAAe,CAAC,EAAE,sBAAsB,CAAC;CAC1C;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,yBAAyB,EAAE,gBAIvC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,iBAAiB,GAAG,UAAU,CAAC;AAE5E;;;;;;;;;;;;;GAaG;AACH,qBAAa,aAAc,SAAQ,KAAK;IAEpC,QAAQ,CAAC,IAAI,EAAE,iBAAiB;IAEhC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO;gBAHf,IAAI,EAAE,iBAAiB,EAChC,OAAO,EAAE,MAAM,EACN,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,KAAK,CAAC,EAAE,OAAO,YAAA;IAM1B;;;;;OAKG;IACH,IAAI,MAAM,IAAI,OAAO,CAEpB;CACF;AAED;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,kFAAkF;IAClF,WAAW,IAAI,IAAI,CAAC;IACpB,+FAA+F;IAC/F,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED,qBAAa,SAAU,SAAQ,KAAK;IAGhC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO;gBARzB,OAAO,EAAE,MAAM,EACN,IAAI,CAAC,EAAE,MAAM,YAAA;IACtB;;;;;OAKG;IACM,MAAM,CAAC,EAAE,OAAO,YAAA;CAI5B;AA6BD,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iFAAiF;IACjF,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,wFAAwF;IACxF,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,uDAAuD;IACvD,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;IACtB;;;;;;;OAOG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B;;;;;;OAMG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC;;;;;;;;;;OAUG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;CAC7C;AAED,yDAAyD;AACzD,MAAM,WAAW,WAAW;IAC1B,qEAAqE;IACrE,EAAE,EAAE,MAAM,CAAC;IACX,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,+EAA+E;AAC/E,MAAM,MAAM,qBAAqB,GAC7B,QAAQ,GACR,SAAS,GACT,SAAS,GACT,OAAO,GACP,mBAAmB,CAAC;AAExB,+DAA+D;AAC/D,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,GAAG,SAAS,CAAC;AAEjE,8EAA8E;AAC9E,MAAM,MAAM,qBAAqB,GAAG,YAAY,GAAG,iBAAiB,CAAC;AAErE;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,gBAAgB,CAWvE;AAED,qFAAqF;AACrF,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,OAAO,GAAG,qBAAqB,CAW/E;AAED,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,gBAAgB,GAAG,SAAS,CAGhF;AAsHD,qBAAa,UAAU;IAoBnB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,QAAQ,CAAC,IAAI;IArBvB,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6C;IAC3E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;IACzD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAC7D,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,qBAAqB,CAA4B;IAKzD,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO;IAQP,IAAI,IAAI,IAAI,cAAc,CAEzB;IAID,OAAO,KAAK,aAAa,GAExB;IAED,gFAAgF;WACnE,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IAM/D,8DAA8D;IACxD,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAS7D;;;;;OAKG;IACG,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAc1D,uEAAuE;IACjE,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAc7D;;;;OAIG;IACG,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC;IAU/G,wEAAwE;YAC1D,aAAa;IA8C3B,0EAA0E;IACpE,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAqB9F;;;OAGG;IACG,IAAI,CAAC,QAAQ,GAAG,OAAO,EAC3B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,OAAO,EAChB,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,QAAQ,CAAC;IAWpB;;;;;OAKG;IACG,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,EAChB,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC;YAKlB,WAAW;IA6DvB,2DAA2D;IAC7D,SAAS,CACP,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,EACpC,IAAI,GAAE,gBAAqB,GAC1B,YAAY;IA+Df;;;;;;;;OAQG;IACH,OAAO,CAAC,kBAAkB;IAmC1B,gEAAgE;IAChE,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,QAA+B,GAAG,IAAI;IAa1F,yEAAyE;IACnE,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC;IAgBjF,uDAAuD;IACnD,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAelF,qEAAqE;IAC/D,iBAAiB,CACrB,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE;QAAE,IAAI,EAAE,gBAAgB,CAAA;KAAE,CAAC,EACxD,QAAQ,EAAE,YAAY,EACtB,IAAI,GAAE,wBAA6B,GAClC,OAAO,CAAC,IAAI,CAAC;IAgBd,+GAA+G;IAC3G,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzF,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,gBAAgB;mBAqBH,cAAc;YAcrB,UAAU;IAQxB,OAAO,CAAC,IAAI;IAqDZ;;;;;;;;;OASG;IACH,OAAO,CAAC,gBAAgB;YA2BV,cAAc;IAuB5B,OAAO,CAAC,WAAW;YAyEL,iBAAiB;IAmD/B,OAAO,CAAC,iBAAiB;YAmBX,eAAe;IA4E7B;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,eAAe,CAAK;IAE5B,OAAO,CAAC,aAAa,CAA8B;IAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,+EAA+E;IAC/E,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,0BAA0B;YA2CpB,yBAAyB;IAMvC,OAAO,CAAC,0BAA0B;IASlC,OAAO,CAAC,kBAAkB;YAWZ,kBAAkB;IAsChC,OAAO,CAAC,iBAAiB;YAgBX,kBAAkB;IAkChC,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,qBAAqB;YAIf,QAAQ;IAwBtB,OAAO,CAAC,QAAQ;IAsIhB;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,sBAAsB;YAgEhB,gBAAgB;YAWhB,gBAAgB;IA4B9B,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,oBAAoB;IAM5B,qFAAqF;IACrF,IAAI,oBAAoB,IAAI,MAAM,CAEjC;IAED,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,kCAAkC;IAO1C,OAAO,CAAC,MAAM;IAId,8EAA8E;IAC9E,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,SAAS;CAIlB;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAkBlE;AAWD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAS1E;AAqDD,eAAO,MAAM,eAAe,oBAAoB,CAAC;AACjD,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAErD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAExF;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOzE;AAmBD,2EAA2E;AAC3E,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAYvE"}
|
package/dist/client.js
CHANGED
|
@@ -44,14 +44,22 @@ const DEADLINE_NO_DROP_CODE = "deadline_exceeded_no_drop_observed";
|
|
|
44
44
|
// A retryable route.open rejection (target booting / reloading / momentarily
|
|
45
45
|
// absent) is retried in-place against the same connection up to this deadline
|
|
46
46
|
// before it is surfaced as not_sent. Mirrors subc-client-rs
|
|
47
|
-
// DEFAULT_ROUTE_RETRY_DEADLINE so a target that is
|
|
48
|
-
//
|
|
49
|
-
// Sized against
|
|
50
|
-
//
|
|
51
|
-
//
|
|
52
|
-
//
|
|
53
|
-
//
|
|
54
|
-
|
|
47
|
+
// DEFAULT_ROUTE_RETRY_DEADLINE so a target that is unavailable while it restarts
|
|
48
|
+
// recovers without a misleading terminal error.
|
|
49
|
+
// Sized against a real module restart, not a single bind: the daemon drains the
|
|
50
|
+
// module's routes (up to 30s), waits for the old process to stop (up to its stop
|
|
51
|
+
// budget, 25s by default), then boots the new one. A measured prefrontal-core
|
|
52
|
+
// restart kept route.open refused for 62.5s end to end, which a 30s budget gave
|
|
53
|
+
// up on halfway through. 90s covers that window with room for a slow boot. A
|
|
54
|
+
// call that sets its own timeoutMs still stops retrying at that timeout.
|
|
55
|
+
export const ROUTE_OPEN_RETRY_DEADLINE_MS = 90_000;
|
|
56
|
+
// The most route.open requests this client keeps outstanding on one connection.
|
|
57
|
+
// Mirrors the daemon's MAX_PENDING_ROUTE_OPENS_PER_CONNECTION
|
|
58
|
+
// (crates/subc-daemon/src/server.rs): the daemon refuses every open beyond that
|
|
59
|
+
// many with a retryable target_unavailable, so sending more at once only
|
|
60
|
+
// manufactures refusals. Extra opens wait here, first come first served, and the
|
|
61
|
+
// wait counts against the same retry deadline as the refusals do.
|
|
62
|
+
export const MAX_ROUTE_OPENS_IN_FLIGHT = 8;
|
|
55
63
|
// Once a header arrives, its body must follow promptly; bound it so a truncated
|
|
56
64
|
// frame cannot wedge the read loop forever.
|
|
57
65
|
const BODY_READ_TIMEOUT_MS = 30_000;
|
|
@@ -161,6 +169,85 @@ export function routeCloseReason(push) {
|
|
|
161
169
|
return undefined;
|
|
162
170
|
return parseRouteCloseReason(push.body.reason);
|
|
163
171
|
}
|
|
172
|
+
/**
|
|
173
|
+
* First-come-first-served limit on the route.open requests one client has
|
|
174
|
+
* outstanding. A slot is held from just before the open is written until its
|
|
175
|
+
* answer, or its failure, settles. The client holds one connection at a time,
|
|
176
|
+
* and replacing it fails every open still in flight on the old one, so one gate
|
|
177
|
+
* per client is a per-connection limit.
|
|
178
|
+
*/
|
|
179
|
+
class RouteOpenGate {
|
|
180
|
+
limit;
|
|
181
|
+
inFlight = 0;
|
|
182
|
+
waiters = [];
|
|
183
|
+
constructor(limit) {
|
|
184
|
+
this.limit = limit;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Resolve with a release function once a slot is free, or with null when
|
|
188
|
+
* `timeoutMs` passes first. Without a timeout the caller waits until a slot
|
|
189
|
+
* frees, which happens as each open in flight settles.
|
|
190
|
+
*/
|
|
191
|
+
acquire(timeoutMs) {
|
|
192
|
+
if (this.inFlight < this.limit && this.waiters.length === 0) {
|
|
193
|
+
this.inFlight += 1;
|
|
194
|
+
return Promise.resolve(this.releaser());
|
|
195
|
+
}
|
|
196
|
+
if (timeoutMs !== undefined && timeoutMs <= 0)
|
|
197
|
+
return Promise.resolve(null);
|
|
198
|
+
return new Promise((resolve) => {
|
|
199
|
+
let timer;
|
|
200
|
+
const waiter = (release) => {
|
|
201
|
+
if (timer !== undefined)
|
|
202
|
+
clearTimeout(timer);
|
|
203
|
+
resolve(release);
|
|
204
|
+
};
|
|
205
|
+
this.waiters.push(waiter);
|
|
206
|
+
if (timeoutMs !== undefined) {
|
|
207
|
+
timer = setTimeout(() => {
|
|
208
|
+
const index = this.waiters.indexOf(waiter);
|
|
209
|
+
if (index === -1)
|
|
210
|
+
return;
|
|
211
|
+
this.waiters.splice(index, 1);
|
|
212
|
+
resolve(null);
|
|
213
|
+
}, timeoutMs);
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
releaser() {
|
|
218
|
+
let released = false;
|
|
219
|
+
return () => {
|
|
220
|
+
if (released)
|
|
221
|
+
return;
|
|
222
|
+
released = true;
|
|
223
|
+
// Hand the slot straight to the oldest waiter, so a newcomer cannot take
|
|
224
|
+
// it between this release and that waiter resuming.
|
|
225
|
+
const next = this.waiters.shift();
|
|
226
|
+
if (next)
|
|
227
|
+
next(this.releaser());
|
|
228
|
+
else
|
|
229
|
+
this.inFlight -= 1;
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* The route.open refusals one retry loop has seen: the most recent one, and the
|
|
235
|
+
* one that best explains why the target was unreachable. When the deadline runs
|
|
236
|
+
* out, the error describes the best one. After a module restart the most recent
|
|
237
|
+
* refusal is often admission pressure ("8 binds in flight"), which points a
|
|
238
|
+
* reader at the client's concurrency when the module was simply down.
|
|
239
|
+
*/
|
|
240
|
+
class RouteOpenRefusals {
|
|
241
|
+
best;
|
|
242
|
+
last;
|
|
243
|
+
record(refusal) {
|
|
244
|
+
this.last = refusal;
|
|
245
|
+
// At equal rank the newer refusal wins: it describes the target's latest state.
|
|
246
|
+
if (!this.best || routeOpenRefusalRank(refusal) >= routeOpenRefusalRank(this.best)) {
|
|
247
|
+
this.best = refusal;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
164
251
|
export class SubcClient {
|
|
165
252
|
sock;
|
|
166
253
|
currentConn;
|
|
@@ -176,6 +263,7 @@ export class SubcClient {
|
|
|
176
263
|
closeStarted = false;
|
|
177
264
|
reconnecting = null;
|
|
178
265
|
generation = 1;
|
|
266
|
+
routeOpenGateInstance;
|
|
179
267
|
// True while the read loop is actively reading/dispatching a frame off the
|
|
180
268
|
// current socket (between reading a header and finishing its dispatch). The
|
|
181
269
|
// timeout arbitration reads it to decide whether a just-fired timeout should
|
|
@@ -190,6 +278,11 @@ export class SubcClient {
|
|
|
190
278
|
get conn() {
|
|
191
279
|
return this.currentConn;
|
|
192
280
|
}
|
|
281
|
+
// Created on first use, so a client assembled without running its constructor
|
|
282
|
+
// (as the unit tests do) still paces its route.opens.
|
|
283
|
+
get routeOpenGate() {
|
|
284
|
+
return (this.routeOpenGateInstance ??= new RouteOpenGate(MAX_ROUTE_OPENS_IN_FLIGHT));
|
|
285
|
+
}
|
|
193
286
|
/** Read the connection file, connect, authenticate, and start the read loop. */
|
|
194
287
|
static async connect(opts) {
|
|
195
288
|
const normalized = normalizeConnectOptions(opts);
|
|
@@ -230,8 +323,23 @@ export class SubcClient {
|
|
|
230
323
|
.map((module) => module.module_id)
|
|
231
324
|
.sort();
|
|
232
325
|
}
|
|
233
|
-
/**
|
|
326
|
+
/**
|
|
327
|
+
* Open a route and return its connection-bound immutable handle. At most
|
|
328
|
+
* MAX_ROUTE_OPENS_IN_FLIGHT opens are outstanding at once; further calls wait
|
|
329
|
+
* their turn.
|
|
330
|
+
*/
|
|
234
331
|
async routeOpen(target, identity, opts = {}) {
|
|
332
|
+
// Without a timeout the gate always grants a slot eventually.
|
|
333
|
+
const release = (await this.routeOpenGate.acquire());
|
|
334
|
+
try {
|
|
335
|
+
return await this.sendRouteOpen(target, identity, opts);
|
|
336
|
+
}
|
|
337
|
+
finally {
|
|
338
|
+
release();
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
/** One route.open exchange. The caller holds a route-open gate slot. */
|
|
342
|
+
async sendRouteOpen(target, identity, opts = {}) {
|
|
235
343
|
const consumerIdentity = routeOpenConsumerIdentity(opts);
|
|
236
344
|
const reverseRequests = opts.reverseRequests ?? new ReverseRequestRegistry();
|
|
237
345
|
reverseRequests.seal();
|
|
@@ -741,17 +849,41 @@ export class SubcClient {
|
|
|
741
849
|
}
|
|
742
850
|
if (cached.handle && this.isLiveHandle(cached.handle))
|
|
743
851
|
return cached.handle;
|
|
852
|
+
// The retries end at the retry deadline or at the call's own timeoutMs,
|
|
853
|
+
// whichever comes first. Without timeoutMs the call has no overall deadline
|
|
854
|
+
// here: the default request timeout bounds only the response wait.
|
|
855
|
+
const startedAt = this.opts.now();
|
|
856
|
+
const callDeadline = opts.timeoutMs === undefined ? undefined : startedAt + opts.timeoutMs;
|
|
744
857
|
if (!cached.opening) {
|
|
745
|
-
|
|
858
|
+
const retryDeadline = startedAt + this.opts.routeOpenRetryDeadlineMs;
|
|
859
|
+
const deadline = callDeadline === undefined ? retryDeadline : Math.min(retryDeadline, callDeadline);
|
|
860
|
+
cached.opening = this.openCachedRoute(cached, deadline).finally(() => {
|
|
746
861
|
cached.opening = null;
|
|
747
862
|
});
|
|
863
|
+
return cached.opening;
|
|
748
864
|
}
|
|
749
|
-
|
|
865
|
+
// Another call is already opening this route, on its own deadline. Share its
|
|
866
|
+
// result, but never wait past this call's own timeout for it.
|
|
867
|
+
if (callDeadline === undefined)
|
|
868
|
+
return cached.opening;
|
|
869
|
+
return this.awaitOpeningUntil(cached.opening, callDeadline);
|
|
870
|
+
}
|
|
871
|
+
awaitOpeningUntil(opening, deadline) {
|
|
872
|
+
return new Promise((resolve, reject) => {
|
|
873
|
+
const timer = setTimeout(() => reject(this.notSentCallError("call deadline elapsed waiting for another call's route.open")), Math.max(0, deadline - this.opts.now()));
|
|
874
|
+
opening.then((handle) => {
|
|
875
|
+
clearTimeout(timer);
|
|
876
|
+
resolve(handle);
|
|
877
|
+
}, (error) => {
|
|
878
|
+
clearTimeout(timer);
|
|
879
|
+
reject(error);
|
|
880
|
+
});
|
|
881
|
+
});
|
|
750
882
|
}
|
|
751
|
-
async openCachedRoute(cached) {
|
|
752
|
-
const routeRetryDeadline = Date.now() + this.opts.routeOpenRetryDeadlineMs;
|
|
883
|
+
async openCachedRoute(cached, deadline) {
|
|
753
884
|
let routeRetryDelay = this.opts.reconnectBackoff.baseMs;
|
|
754
885
|
let routeRetryAttempt = 0;
|
|
886
|
+
const refusals = new RouteOpenRefusals();
|
|
755
887
|
for (;;) {
|
|
756
888
|
if (cached.closed)
|
|
757
889
|
throw this.routeClosedDuringOpen();
|
|
@@ -763,11 +895,27 @@ export class SubcClient {
|
|
|
763
895
|
}
|
|
764
896
|
if (cached.handle && this.isLiveHandle(cached.handle))
|
|
765
897
|
return cached.handle;
|
|
898
|
+
// Waiting for a free slot spends the same deadline as retrying refusals.
|
|
899
|
+
const release = await this.routeOpenGate.acquire(Math.max(0, deadline - this.opts.now()));
|
|
900
|
+
if (!release)
|
|
901
|
+
throw this.routeOpenRetryExhausted(cached.moduleId, routeRetryAttempt, refusals);
|
|
902
|
+
let outcome;
|
|
766
903
|
try {
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
904
|
+
outcome = {
|
|
905
|
+
handle: await this.sendRouteOpen(cached.target, cached.identity, {
|
|
906
|
+
consumerIdentity: cached.consumerIdentity ?? null,
|
|
907
|
+
reverseRequests: cached.reverseRequests,
|
|
908
|
+
}),
|
|
909
|
+
};
|
|
910
|
+
}
|
|
911
|
+
catch (error) {
|
|
912
|
+
outcome = { error };
|
|
913
|
+
}
|
|
914
|
+
finally {
|
|
915
|
+
release();
|
|
916
|
+
}
|
|
917
|
+
if ("handle" in outcome) {
|
|
918
|
+
const { handle } = outcome;
|
|
771
919
|
if (cached.closed) {
|
|
772
920
|
this.liveRoutes.delete(handle.channel);
|
|
773
921
|
this.sendRouteGoodbye(handle);
|
|
@@ -776,37 +924,55 @@ export class SubcClient {
|
|
|
776
924
|
cached.handle = handle;
|
|
777
925
|
return handle;
|
|
778
926
|
}
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
}
|
|
786
|
-
catch (reconnectError) {
|
|
787
|
-
throw this.notSentRecoveryError("route.open was not sent and reconnect failed", reconnectError);
|
|
788
|
-
}
|
|
789
|
-
continue;
|
|
927
|
+
const { error } = outcome;
|
|
928
|
+
if (error instanceof SubcCallError && error.code === "route_closed")
|
|
929
|
+
throw error;
|
|
930
|
+
if (!this.closeStarted && isConsumerReconnectTransient(error)) {
|
|
931
|
+
try {
|
|
932
|
+
await this.reconnectAfterDrop(error);
|
|
790
933
|
}
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
// this condition, and because the capped backoff sums to ~3.1s it
|
|
794
|
-
// strictly dominated the 30s deadline — the advertised reload
|
|
795
|
-
// patience was never delivered, so every module restart whose reload
|
|
796
|
-
// exceeded ~3s failed managed callers with module_reloading. Module
|
|
797
|
-
// reloads legitimately take tens of seconds (drain alone defaults to
|
|
798
|
-
// 30s); the backoff cap below bounds retry pressure instead.
|
|
799
|
-
routeRetryAttempt += 1;
|
|
800
|
-
if (Date.now() < routeRetryDeadline) {
|
|
801
|
-
await this.opts.sleep(routeRetryDelay);
|
|
802
|
-
routeRetryDelay = Math.min(routeRetryDelay * 2, this.opts.reconnectBackoff.capMs);
|
|
803
|
-
continue;
|
|
804
|
-
}
|
|
805
|
-
throw this.notSentCallError(`route.open failed for module ${cached.moduleId}: ${error.code} (retry deadline exhausted after ${routeRetryAttempt} attempts)`, error);
|
|
934
|
+
catch (reconnectError) {
|
|
935
|
+
throw this.notSentRecoveryError("route.open was not sent and reconnect failed", reconnectError);
|
|
806
936
|
}
|
|
807
|
-
|
|
937
|
+
continue;
|
|
808
938
|
}
|
|
939
|
+
if (!this.closeStarted && error instanceof SubcError && isRetryableRouteOpenCode(error.code)) {
|
|
940
|
+
// The deadline is the ONLY binder here. An attempt cap used to share
|
|
941
|
+
// this condition, and because the capped backoff sums to ~3.1s it
|
|
942
|
+
// strictly dominated the deadline — the advertised reload patience was
|
|
943
|
+
// never delivered, so every module restart whose reload exceeded ~3s
|
|
944
|
+
// failed managed callers with module_reloading. A restart legitimately
|
|
945
|
+
// keeps routes refused for about a minute; the backoff cap below bounds
|
|
946
|
+
// retry pressure instead.
|
|
947
|
+
routeRetryAttempt += 1;
|
|
948
|
+
refusals.record(error);
|
|
949
|
+
const remaining = deadline - this.opts.now();
|
|
950
|
+
if (remaining > 0) {
|
|
951
|
+
// Every route on a connection is closed together when its module
|
|
952
|
+
// drains, so without jitter they all retry in lock step and arrive at
|
|
953
|
+
// the daemon as one burst each round.
|
|
954
|
+
await this.opts.sleep(Math.min(equalJitter(routeRetryDelay, this.opts.random), remaining));
|
|
955
|
+
routeRetryDelay = Math.min(routeRetryDelay * 2, this.opts.reconnectBackoff.capMs);
|
|
956
|
+
continue;
|
|
957
|
+
}
|
|
958
|
+
throw this.routeOpenRetryExhausted(cached.moduleId, routeRetryAttempt, refusals);
|
|
959
|
+
}
|
|
960
|
+
throw this.terminalCallError(`route.open failed for module ${cached.moduleId}`, error);
|
|
961
|
+
}
|
|
962
|
+
}
|
|
963
|
+
/**
|
|
964
|
+
* The not_sent error for a route.open whose retry deadline ran out. Its code
|
|
965
|
+
* and cause are the most recent refusal, as they always were; its message
|
|
966
|
+
* describes the most informative refusal seen, so a module that was reloading
|
|
967
|
+
* is not reported as admission pressure on the client's own connection.
|
|
968
|
+
*/
|
|
969
|
+
routeOpenRetryExhausted(moduleId, attempts, refusals) {
|
|
970
|
+
const { best, last } = refusals;
|
|
971
|
+
if (!best || !last) {
|
|
972
|
+
return this.notSentCallError(`route.open for module ${moduleId} waited until its deadline for one of ${MAX_ROUTE_OPENS_IN_FLIGHT} route.open slots on this connection`);
|
|
809
973
|
}
|
|
974
|
+
const recent = last === best ? "" : `; the most recent refusal was ${describeRouteOpenRefusal(last)}`;
|
|
975
|
+
return new SubcCallError("not_sent", `route.open failed for module ${moduleId}: ${describeRouteOpenRefusal(best)} (retry deadline exhausted after ${attempts} attempts${recent})`, last.code, last);
|
|
810
976
|
}
|
|
811
977
|
// Stamped by dispatch() on every inbound frame; read by the liveness probe.
|
|
812
978
|
lastInboundAtMs = 0;
|
|
@@ -1403,6 +1569,55 @@ export function isRetryableRouteOpenCode(code) {
|
|
|
1403
1569
|
code === "target_unavailable" ||
|
|
1404
1570
|
code === "module_timeout");
|
|
1405
1571
|
}
|
|
1572
|
+
/**
|
|
1573
|
+
* "Equal jitter": half the delay is kept and the other half is random, so
|
|
1574
|
+
* retries spread out while still backing off. `random` returns a value in [0, 1).
|
|
1575
|
+
*/
|
|
1576
|
+
function equalJitter(delayMs, random) {
|
|
1577
|
+
const half = delayMs / 2;
|
|
1578
|
+
return half + random() * half;
|
|
1579
|
+
}
|
|
1580
|
+
// The daemon's reasons for refusing a route.open because too many binds are
|
|
1581
|
+
// already in flight: on the client's connection, or towards the target module
|
|
1582
|
+
// (crates/subc-daemon/src/control.rs, route_open_capacity_refusal and
|
|
1583
|
+
// route_open_target_capacity_refusal). Both are sent as target_unavailable.
|
|
1584
|
+
const ROUTE_OPEN_ADMISSION_PRESSURE_REASONS = new Set(["open_admission_full", "target_binds_full"]);
|
|
1585
|
+
// Matches the messages of those same admission-pressure refusals. The daemon
|
|
1586
|
+
// currently logs the reason but leaves it out of the refusal's detail, so the
|
|
1587
|
+
// message is the only way to recognise them.
|
|
1588
|
+
const ROUTE_OPEN_ADMISSION_PRESSURE_MESSAGE = /route\.open binds in flight|route\.bind relays in flight/;
|
|
1589
|
+
function refusalReason(refusal) {
|
|
1590
|
+
const detail = refusal.detail;
|
|
1591
|
+
if (typeof detail !== "object" || detail === null || !("reason" in detail))
|
|
1592
|
+
return undefined;
|
|
1593
|
+
const reason = detail.reason;
|
|
1594
|
+
return typeof reason === "string" ? reason : undefined;
|
|
1595
|
+
}
|
|
1596
|
+
/**
|
|
1597
|
+
* How much a route.open refusal says about why the target was unreachable,
|
|
1598
|
+
* highest first: the module was changing state (reloading or warming); a
|
|
1599
|
+
* delegation was not registered; the daemon was refusing for admission pressure
|
|
1600
|
+
* (too many binds in flight); anything else.
|
|
1601
|
+
*/
|
|
1602
|
+
function routeOpenRefusalRank(refusal) {
|
|
1603
|
+
if (refusal.code === "module_reloading" || refusal.code === "module_warming")
|
|
1604
|
+
return 3;
|
|
1605
|
+
const reason = refusalReason(refusal);
|
|
1606
|
+
if (refusal.code === "delegation_not_registered" || reason === "delegation_not_registered")
|
|
1607
|
+
return 2;
|
|
1608
|
+
if (refusal.code === "target_unavailable") {
|
|
1609
|
+
const admissionPressure = reason === undefined
|
|
1610
|
+
? ROUTE_OPEN_ADMISSION_PRESSURE_MESSAGE.test(refusal.message)
|
|
1611
|
+
: ROUTE_OPEN_ADMISSION_PRESSURE_REASONS.has(reason);
|
|
1612
|
+
if (admissionPressure)
|
|
1613
|
+
return 1;
|
|
1614
|
+
}
|
|
1615
|
+
return 0;
|
|
1616
|
+
}
|
|
1617
|
+
function describeRouteOpenRefusal(refusal) {
|
|
1618
|
+
const reason = refusalReason(refusal);
|
|
1619
|
+
return `${refusal.code ?? "refused"}${reason === undefined ? "" : ` (reason ${reason})`}: ${refusal.message}`;
|
|
1620
|
+
}
|
|
1406
1621
|
export const UNKNOWN_CHANNEL = "unknown_channel";
|
|
1407
1622
|
export const STALE_ROUTE_EPOCH = "stale_route_epoch";
|
|
1408
1623
|
/** Whether to evict this route, reopen it, and resend once. A consumer deriving
|
|
@@ -1432,6 +1647,8 @@ function normalizeConnectOptions(opts) {
|
|
|
1432
1647
|
targetKind: opts.targetKind ?? DEFAULT_MANAGED_TARGET_KIND,
|
|
1433
1648
|
reconnectBackoff: opts.reconnectBackoff ?? DEFAULT_RECONNECT_BACKOFF,
|
|
1434
1649
|
sleep: opts.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms))),
|
|
1650
|
+
now: opts.now ?? Date.now,
|
|
1651
|
+
random: opts.random ?? Math.random,
|
|
1435
1652
|
routeOpenRetryDeadlineMs: opts.routeOpenRetryDeadlineMs ?? ROUTE_OPEN_RETRY_DEADLINE_MS,
|
|
1436
1653
|
timeoutArbitrationGraceMs: opts.timeoutArbitrationGraceMs ?? TIMEOUT_ARBITRATION_GRACE_MS,
|
|
1437
1654
|
livenessProbeWindowMs: opts.livenessProbeWindowMs ?? LIVENESS_PROBE_WINDOW_MS,
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { SubcClient, SubcError, SubcCallError, UNKNOWN_CHANNEL, STALE_ROUTE_EPOCH, isEstablishedRouteDead, DEFAULT_RECONNECT_BACKOFF, SUBC_MODULE_ID_ENV, SUBC_LAUNCH_NONCE_ENV, isConsumerReconnectTransient, parseRouteCloseReason, classifyRouteCloseReason, routeCloseReason, isValidCapabilityIdentifier, connectionFileExists, type BindIdentity, type RouteTarget, type ManagedRouteKind, type ConsumerIdentity, type RouteOpenOptions, type CatalogCapabilities, type CatalogCapabilityRequirement, type CatalogEntry, type RequestOptions, type ManagedCallOptions, type ConnectOptions, type ControlPush, type KnownRouteCloseReason, type RouteCloseReason, type RouteCloseDisposition, type ReconnectBackoff, type SubcCallErrorKind, type SubscribeOptions, type Subscription, type CloseRouteOptions, type ManagedCloseRouteOptions, type RoutePollKind, type RoutePollResult, } from "./client.js";
|
|
1
|
+
export { SubcClient, SubcError, SubcCallError, UNKNOWN_CHANNEL, STALE_ROUTE_EPOCH, isEstablishedRouteDead, isRetryableRouteOpenCode, DEFAULT_RECONNECT_BACKOFF, SUBC_MODULE_ID_ENV, SUBC_LAUNCH_NONCE_ENV, isConsumerReconnectTransient, parseRouteCloseReason, classifyRouteCloseReason, routeCloseReason, isValidCapabilityIdentifier, connectionFileExists, type BindIdentity, type RouteTarget, type ManagedRouteKind, type ConsumerIdentity, type RouteOpenOptions, type CatalogCapabilities, type CatalogCapabilityRequirement, type CatalogEntry, type RequestOptions, type ManagedCallOptions, type ConnectOptions, type ControlPush, type KnownRouteCloseReason, type RouteCloseReason, type RouteCloseDisposition, type ReconnectBackoff, type SubcCallErrorKind, type SubscribeOptions, type Subscription, type CloseRouteOptions, type ManagedCloseRouteOptions, type RoutePollKind, type RoutePollResult, } from "./client.js";
|
|
2
2
|
export { ReverseRequestRegistry, ReverseRequestRegistrationError, RouteHandle, StaleRouteHandleError, type ReverseRequestContext, type ReverseRequestHandler, } from "./route-handle.js";
|
|
3
3
|
export { readConnectionFile, ConnectionFileError, type ConnectionInfo, type Endpoint, } from "./connection-file.js";
|
|
4
4
|
export { FrameType, Priority, AdmissionClass, DAEMON_ORIGIN_FLAG, SUBSCRIPTION_FLAG, PROTOCOL_VERSION, HEADER_LEN, buildFrame, buildFrameWithVersion, buildFlags, encodeFrame, decodeHeader, hasBinary, hasDaemonOrigin, encodeHeader, DecodeError, type DecodeErrorCode, type Frame, type EnvelopeHeader, } from "./envelope.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EACT,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,qBAAqB,EACrB,4BAA4B,EAC5B,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,EAChB,2BAA2B,EAC3B,oBAAoB,EACpB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,4BAA4B,EACjC,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,eAAe,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,sBAAsB,EACtB,+BAA+B,EAC/B,WAAW,EACX,qBAAqB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,cAAc,EACnB,KAAK,QAAQ,GACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,SAAS,EACT,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,qBAAqB,EACrB,UAAU,EACV,WAAW,EACX,YAAY,EACZ,SAAS,EACT,eAAe,EACf,YAAY,EACZ,WAAW,EACX,KAAK,eAAe,EACpB,KAAK,KAAK,EACV,KAAK,cAAc,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,yBAAyB,EACzB,mBAAmB,EACnB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,gCAAgC,EACrC,KAAK,aAAa,EAClB,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAC/B,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,eAAe,GACrB,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EACT,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EAClB,qBAAqB,EACrB,4BAA4B,EAC5B,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,EAChB,2BAA2B,EAC3B,oBAAoB,EACpB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,4BAA4B,EACjC,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,eAAe,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,sBAAsB,EACtB,+BAA+B,EAC/B,WAAW,EACX,qBAAqB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,cAAc,EACnB,KAAK,QAAQ,GACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,SAAS,EACT,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,qBAAqB,EACrB,UAAU,EACV,WAAW,EACX,YAAY,EACZ,SAAS,EACT,eAAe,EACf,YAAY,EACZ,WAAW,EACX,KAAK,eAAe,EACpB,KAAK,KAAK,EACV,KAAK,cAAc,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,yBAAyB,EACzB,mBAAmB,EACnB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,gCAAgC,EACrC,KAAK,aAAa,EAClB,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAC/B,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,eAAe,GACrB,MAAM,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { SubcClient, SubcError, SubcCallError, UNKNOWN_CHANNEL, STALE_ROUTE_EPOCH, isEstablishedRouteDead, DEFAULT_RECONNECT_BACKOFF, SUBC_MODULE_ID_ENV, SUBC_LAUNCH_NONCE_ENV, isConsumerReconnectTransient, parseRouteCloseReason, classifyRouteCloseReason, routeCloseReason, isValidCapabilityIdentifier, connectionFileExists, } from "./client.js";
|
|
1
|
+
export { SubcClient, SubcError, SubcCallError, UNKNOWN_CHANNEL, STALE_ROUTE_EPOCH, isEstablishedRouteDead, isRetryableRouteOpenCode, DEFAULT_RECONNECT_BACKOFF, SUBC_MODULE_ID_ENV, SUBC_LAUNCH_NONCE_ENV, isConsumerReconnectTransient, parseRouteCloseReason, classifyRouteCloseReason, routeCloseReason, isValidCapabilityIdentifier, connectionFileExists, } from "./client.js";
|
|
2
2
|
export { ReverseRequestRegistry, ReverseRequestRegistrationError, RouteHandle, StaleRouteHandleError, } from "./route-handle.js";
|
|
3
3
|
export { readConnectionFile, ConnectionFileError, } from "./connection-file.js";
|
|
4
4
|
export { FrameType, Priority, AdmissionClass, DAEMON_ORIGIN_FLAG, SUBSCRIPTION_FLAG, PROTOCOL_VERSION, HEADER_LEN, buildFrame, buildFrameWithVersion, buildFlags, encodeFrame, decodeHeader, hasBinary, hasDaemonOrigin, encodeHeader, DecodeError, } from "./envelope.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EACT,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,qBAAqB,EACrB,4BAA4B,EAC5B,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,EAChB,2BAA2B,EAC3B,oBAAoB,GAwBrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,sBAAsB,EACtB,+BAA+B,EAC/B,WAAW,EACX,qBAAqB,GAGtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,GAGpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,SAAS,EACT,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,qBAAqB,EACrB,UAAU,EACV,WAAW,EACX,YAAY,EACZ,SAAS,EACT,eAAe,EACf,YAAY,EACZ,WAAW,GAIZ,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,yBAAyB,EACzB,mBAAmB,EAgBnB,qBAAqB,GAoBtB,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EACT,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EAClB,qBAAqB,EACrB,4BAA4B,EAC5B,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,EAChB,2BAA2B,EAC3B,oBAAoB,GAwBrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,sBAAsB,EACtB,+BAA+B,EAC/B,WAAW,EACX,qBAAqB,GAGtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,GAGpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,SAAS,EACT,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,qBAAqB,EACrB,UAAU,EACV,WAAW,EACX,YAAY,EACZ,SAAS,EACT,eAAe,EACf,YAAY,EACZ,WAAW,GAIZ,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,yBAAyB,EACzB,mBAAmB,EAgBnB,qBAAqB,GAoBtB,MAAM,eAAe,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cortexkit/subc-client",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"description": "TypeScript client for the subc daemon. Wire-compatible (byte-for-byte) with the Rust subc-transport handshake and subc-protocol envelope.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
package/src/client.ts
CHANGED
|
@@ -75,14 +75,22 @@ const DEADLINE_NO_DROP_CODE = "deadline_exceeded_no_drop_observed";
|
|
|
75
75
|
// A retryable route.open rejection (target booting / reloading / momentarily
|
|
76
76
|
// absent) is retried in-place against the same connection up to this deadline
|
|
77
77
|
// before it is surfaced as not_sent. Mirrors subc-client-rs
|
|
78
|
-
// DEFAULT_ROUTE_RETRY_DEADLINE so a target that is
|
|
79
|
-
//
|
|
80
|
-
// Sized against
|
|
81
|
-
//
|
|
82
|
-
//
|
|
83
|
-
//
|
|
84
|
-
//
|
|
85
|
-
|
|
78
|
+
// DEFAULT_ROUTE_RETRY_DEADLINE so a target that is unavailable while it restarts
|
|
79
|
+
// recovers without a misleading terminal error.
|
|
80
|
+
// Sized against a real module restart, not a single bind: the daemon drains the
|
|
81
|
+
// module's routes (up to 30s), waits for the old process to stop (up to its stop
|
|
82
|
+
// budget, 25s by default), then boots the new one. A measured prefrontal-core
|
|
83
|
+
// restart kept route.open refused for 62.5s end to end, which a 30s budget gave
|
|
84
|
+
// up on halfway through. 90s covers that window with room for a slow boot. A
|
|
85
|
+
// call that sets its own timeoutMs still stops retrying at that timeout.
|
|
86
|
+
export const ROUTE_OPEN_RETRY_DEADLINE_MS = 90_000;
|
|
87
|
+
// The most route.open requests this client keeps outstanding on one connection.
|
|
88
|
+
// Mirrors the daemon's MAX_PENDING_ROUTE_OPENS_PER_CONNECTION
|
|
89
|
+
// (crates/subc-daemon/src/server.rs): the daemon refuses every open beyond that
|
|
90
|
+
// many with a retryable target_unavailable, so sending more at once only
|
|
91
|
+
// manufactures refusals. Extra opens wait here, first come first served, and the
|
|
92
|
+
// wait counts against the same retry deadline as the refusals do.
|
|
93
|
+
export const MAX_ROUTE_OPENS_IN_FLIGHT = 8;
|
|
86
94
|
// Once a header arrives, its body must follow promptly; bound it so a truncated
|
|
87
95
|
// frame cannot wedge the read loop forever.
|
|
88
96
|
const BODY_READ_TIMEOUT_MS = 30_000;
|
|
@@ -358,12 +366,23 @@ export interface ConnectOptions {
|
|
|
358
366
|
reconnectBackoff?: ReconnectBackoff;
|
|
359
367
|
/** Injectable sleep for timer-free reconnect tests. */
|
|
360
368
|
sleep?: (ms: number) => Promise<void>;
|
|
369
|
+
/**
|
|
370
|
+
* Injectable clock (milliseconds) for the route.open retry deadline. Tests pair
|
|
371
|
+
* it with `sleep` so a minute-long module restart runs in fake time.
|
|
372
|
+
*/
|
|
373
|
+
now?: () => number;
|
|
374
|
+
/**
|
|
375
|
+
* Injectable random source in [0, 1) for route.open retry jitter, so tests can
|
|
376
|
+
* seed it. Defaults to Math.random.
|
|
377
|
+
*/
|
|
378
|
+
random?: () => number;
|
|
361
379
|
/**
|
|
362
380
|
* How long managed calls keep retrying route.open in-place on retryable
|
|
363
381
|
* refusals (module_reloading, module_warming, target_unavailable, …) before
|
|
364
|
-
* settling not_sent. This deadline
|
|
365
|
-
*
|
|
366
|
-
*
|
|
382
|
+
* settling not_sent. This deadline and the call's own timeoutMs (when set) are
|
|
383
|
+
* the only binders on those retries: a module restart legitimately keeps its
|
|
384
|
+
* routes refused for about a minute (drain, stop, boot), so the default is
|
|
385
|
+
* ROUTE_OPEN_RETRY_DEADLINE_MS.
|
|
367
386
|
*/
|
|
368
387
|
routeOpenRetryDeadlineMs?: number;
|
|
369
388
|
/**
|
|
@@ -465,6 +484,8 @@ interface NormalizedConnectOptions {
|
|
|
465
484
|
targetKind: ManagedRouteKind;
|
|
466
485
|
reconnectBackoff: ReconnectBackoff;
|
|
467
486
|
sleep: (ms: number) => Promise<void>;
|
|
487
|
+
now: () => number;
|
|
488
|
+
random: () => number;
|
|
468
489
|
routeOpenRetryDeadlineMs: number;
|
|
469
490
|
timeoutArbitrationGraceMs: number;
|
|
470
491
|
livenessProbeWindowMs: number;
|
|
@@ -476,6 +497,82 @@ interface OpenedConnection {
|
|
|
476
497
|
conn: ConnectionInfo;
|
|
477
498
|
}
|
|
478
499
|
|
|
500
|
+
/**
|
|
501
|
+
* First-come-first-served limit on the route.open requests one client has
|
|
502
|
+
* outstanding. A slot is held from just before the open is written until its
|
|
503
|
+
* answer, or its failure, settles. The client holds one connection at a time,
|
|
504
|
+
* and replacing it fails every open still in flight on the old one, so one gate
|
|
505
|
+
* per client is a per-connection limit.
|
|
506
|
+
*/
|
|
507
|
+
class RouteOpenGate {
|
|
508
|
+
private inFlight = 0;
|
|
509
|
+
private readonly waiters: Array<(release: () => void) => void> = [];
|
|
510
|
+
|
|
511
|
+
constructor(private readonly limit: number) {}
|
|
512
|
+
|
|
513
|
+
/**
|
|
514
|
+
* Resolve with a release function once a slot is free, or with null when
|
|
515
|
+
* `timeoutMs` passes first. Without a timeout the caller waits until a slot
|
|
516
|
+
* frees, which happens as each open in flight settles.
|
|
517
|
+
*/
|
|
518
|
+
acquire(timeoutMs?: number): Promise<(() => void) | null> {
|
|
519
|
+
if (this.inFlight < this.limit && this.waiters.length === 0) {
|
|
520
|
+
this.inFlight += 1;
|
|
521
|
+
return Promise.resolve(this.releaser());
|
|
522
|
+
}
|
|
523
|
+
if (timeoutMs !== undefined && timeoutMs <= 0) return Promise.resolve(null);
|
|
524
|
+
return new Promise((resolve) => {
|
|
525
|
+
let timer: ReturnType<typeof setTimeout> | undefined;
|
|
526
|
+
const waiter = (release: () => void): void => {
|
|
527
|
+
if (timer !== undefined) clearTimeout(timer);
|
|
528
|
+
resolve(release);
|
|
529
|
+
};
|
|
530
|
+
this.waiters.push(waiter);
|
|
531
|
+
if (timeoutMs !== undefined) {
|
|
532
|
+
timer = setTimeout(() => {
|
|
533
|
+
const index = this.waiters.indexOf(waiter);
|
|
534
|
+
if (index === -1) return;
|
|
535
|
+
this.waiters.splice(index, 1);
|
|
536
|
+
resolve(null);
|
|
537
|
+
}, timeoutMs);
|
|
538
|
+
}
|
|
539
|
+
});
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
private releaser(): () => void {
|
|
543
|
+
let released = false;
|
|
544
|
+
return () => {
|
|
545
|
+
if (released) return;
|
|
546
|
+
released = true;
|
|
547
|
+
// Hand the slot straight to the oldest waiter, so a newcomer cannot take
|
|
548
|
+
// it between this release and that waiter resuming.
|
|
549
|
+
const next = this.waiters.shift();
|
|
550
|
+
if (next) next(this.releaser());
|
|
551
|
+
else this.inFlight -= 1;
|
|
552
|
+
};
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
/**
|
|
557
|
+
* The route.open refusals one retry loop has seen: the most recent one, and the
|
|
558
|
+
* one that best explains why the target was unreachable. When the deadline runs
|
|
559
|
+
* out, the error describes the best one. After a module restart the most recent
|
|
560
|
+
* refusal is often admission pressure ("8 binds in flight"), which points a
|
|
561
|
+
* reader at the client's concurrency when the module was simply down.
|
|
562
|
+
*/
|
|
563
|
+
class RouteOpenRefusals {
|
|
564
|
+
best: SubcError | undefined;
|
|
565
|
+
last: SubcError | undefined;
|
|
566
|
+
|
|
567
|
+
record(refusal: SubcError): void {
|
|
568
|
+
this.last = refusal;
|
|
569
|
+
// At equal rank the newer refusal wins: it describes the target's latest state.
|
|
570
|
+
if (!this.best || routeOpenRefusalRank(refusal) >= routeOpenRefusalRank(this.best)) {
|
|
571
|
+
this.best = refusal;
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
|
|
479
576
|
interface CachedRoute {
|
|
480
577
|
key: string;
|
|
481
578
|
moduleId: string;
|
|
@@ -508,6 +605,7 @@ export class SubcClient {
|
|
|
508
605
|
private closeStarted = false;
|
|
509
606
|
private reconnecting: Promise<void> | null = null;
|
|
510
607
|
private generation = 1;
|
|
608
|
+
private routeOpenGateInstance: RouteOpenGate | undefined;
|
|
511
609
|
// True while the read loop is actively reading/dispatching a frame off the
|
|
512
610
|
// current socket (between reading a header and finishing its dispatch). The
|
|
513
611
|
// timeout arbitration reads it to decide whether a just-fired timeout should
|
|
@@ -526,6 +624,12 @@ export class SubcClient {
|
|
|
526
624
|
return this.currentConn;
|
|
527
625
|
}
|
|
528
626
|
|
|
627
|
+
// Created on first use, so a client assembled without running its constructor
|
|
628
|
+
// (as the unit tests do) still paces its route.opens.
|
|
629
|
+
private get routeOpenGate(): RouteOpenGate {
|
|
630
|
+
return (this.routeOpenGateInstance ??= new RouteOpenGate(MAX_ROUTE_OPENS_IN_FLIGHT));
|
|
631
|
+
}
|
|
632
|
+
|
|
529
633
|
/** Read the connection file, connect, authenticate, and start the read loop. */
|
|
530
634
|
static async connect(opts: ConnectOptions): Promise<SubcClient> {
|
|
531
635
|
const normalized = normalizeConnectOptions(opts);
|
|
@@ -578,8 +682,27 @@ export class SubcClient {
|
|
|
578
682
|
.sort();
|
|
579
683
|
}
|
|
580
684
|
|
|
581
|
-
/**
|
|
685
|
+
/**
|
|
686
|
+
* Open a route and return its connection-bound immutable handle. At most
|
|
687
|
+
* MAX_ROUTE_OPENS_IN_FLIGHT opens are outstanding at once; further calls wait
|
|
688
|
+
* their turn.
|
|
689
|
+
*/
|
|
582
690
|
async routeOpen(target: RouteTarget, identity: BindIdentity, opts: RouteOpenOptions = {}): Promise<RouteHandle> {
|
|
691
|
+
// Without a timeout the gate always grants a slot eventually.
|
|
692
|
+
const release = (await this.routeOpenGate.acquire())!;
|
|
693
|
+
try {
|
|
694
|
+
return await this.sendRouteOpen(target, identity, opts);
|
|
695
|
+
} finally {
|
|
696
|
+
release();
|
|
697
|
+
}
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
/** One route.open exchange. The caller holds a route-open gate slot. */
|
|
701
|
+
private async sendRouteOpen(
|
|
702
|
+
target: RouteTarget,
|
|
703
|
+
identity: BindIdentity,
|
|
704
|
+
opts: RouteOpenOptions = {},
|
|
705
|
+
): Promise<RouteHandle> {
|
|
583
706
|
const consumerIdentity = routeOpenConsumerIdentity(opts);
|
|
584
707
|
const reverseRequests = opts.reverseRequests ?? new ReverseRequestRegistry();
|
|
585
708
|
reverseRequests.seal();
|
|
@@ -1210,18 +1333,48 @@ export class SubcClient {
|
|
|
1210
1333
|
this.routes.set(key, cached);
|
|
1211
1334
|
}
|
|
1212
1335
|
if (cached.handle && this.isLiveHandle(cached.handle)) return cached.handle;
|
|
1336
|
+
// The retries end at the retry deadline or at the call's own timeoutMs,
|
|
1337
|
+
// whichever comes first. Without timeoutMs the call has no overall deadline
|
|
1338
|
+
// here: the default request timeout bounds only the response wait.
|
|
1339
|
+
const startedAt = this.opts.now();
|
|
1340
|
+
const callDeadline = opts.timeoutMs === undefined ? undefined : startedAt + opts.timeoutMs;
|
|
1213
1341
|
if (!cached.opening) {
|
|
1214
|
-
|
|
1342
|
+
const retryDeadline = startedAt + this.opts.routeOpenRetryDeadlineMs;
|
|
1343
|
+
const deadline = callDeadline === undefined ? retryDeadline : Math.min(retryDeadline, callDeadline);
|
|
1344
|
+
cached.opening = this.openCachedRoute(cached, deadline).finally(() => {
|
|
1215
1345
|
cached.opening = null;
|
|
1216
1346
|
});
|
|
1347
|
+
return cached.opening;
|
|
1217
1348
|
}
|
|
1218
|
-
|
|
1349
|
+
// Another call is already opening this route, on its own deadline. Share its
|
|
1350
|
+
// result, but never wait past this call's own timeout for it.
|
|
1351
|
+
if (callDeadline === undefined) return cached.opening;
|
|
1352
|
+
return this.awaitOpeningUntil(cached.opening, callDeadline);
|
|
1219
1353
|
}
|
|
1220
1354
|
|
|
1221
|
-
private
|
|
1222
|
-
|
|
1355
|
+
private awaitOpeningUntil(opening: Promise<RouteHandle>, deadline: number): Promise<RouteHandle> {
|
|
1356
|
+
return new Promise<RouteHandle>((resolve, reject) => {
|
|
1357
|
+
const timer = setTimeout(
|
|
1358
|
+
() => reject(this.notSentCallError("call deadline elapsed waiting for another call's route.open")),
|
|
1359
|
+
Math.max(0, deadline - this.opts.now()),
|
|
1360
|
+
);
|
|
1361
|
+
opening.then(
|
|
1362
|
+
(handle) => {
|
|
1363
|
+
clearTimeout(timer);
|
|
1364
|
+
resolve(handle);
|
|
1365
|
+
},
|
|
1366
|
+
(error: unknown) => {
|
|
1367
|
+
clearTimeout(timer);
|
|
1368
|
+
reject(error);
|
|
1369
|
+
},
|
|
1370
|
+
);
|
|
1371
|
+
});
|
|
1372
|
+
}
|
|
1373
|
+
|
|
1374
|
+
private async openCachedRoute(cached: CachedRoute, deadline: number): Promise<RouteHandle> {
|
|
1223
1375
|
let routeRetryDelay = this.opts.reconnectBackoff.baseMs;
|
|
1224
1376
|
let routeRetryAttempt = 0;
|
|
1377
|
+
const refusals = new RouteOpenRefusals();
|
|
1225
1378
|
for (;;) {
|
|
1226
1379
|
if (cached.closed) throw this.routeClosedDuringOpen();
|
|
1227
1380
|
try {
|
|
@@ -1231,11 +1384,25 @@ export class SubcClient {
|
|
|
1231
1384
|
}
|
|
1232
1385
|
if (cached.handle && this.isLiveHandle(cached.handle)) return cached.handle;
|
|
1233
1386
|
|
|
1387
|
+
// Waiting for a free slot spends the same deadline as retrying refusals.
|
|
1388
|
+
const release = await this.routeOpenGate.acquire(Math.max(0, deadline - this.opts.now()));
|
|
1389
|
+
if (!release) throw this.routeOpenRetryExhausted(cached.moduleId, routeRetryAttempt, refusals);
|
|
1390
|
+
let outcome: { handle: RouteHandle } | { error: unknown };
|
|
1234
1391
|
try {
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1392
|
+
outcome = {
|
|
1393
|
+
handle: await this.sendRouteOpen(cached.target, cached.identity, {
|
|
1394
|
+
consumerIdentity: cached.consumerIdentity ?? null,
|
|
1395
|
+
reverseRequests: cached.reverseRequests,
|
|
1396
|
+
}),
|
|
1397
|
+
};
|
|
1398
|
+
} catch (error) {
|
|
1399
|
+
outcome = { error };
|
|
1400
|
+
} finally {
|
|
1401
|
+
release();
|
|
1402
|
+
}
|
|
1403
|
+
|
|
1404
|
+
if ("handle" in outcome) {
|
|
1405
|
+
const { handle } = outcome;
|
|
1239
1406
|
if (cached.closed) {
|
|
1240
1407
|
this.liveRoutes.delete(handle.channel);
|
|
1241
1408
|
this.sendRouteGoodbye(handle);
|
|
@@ -1243,40 +1410,65 @@ export class SubcClient {
|
|
|
1243
1410
|
}
|
|
1244
1411
|
cached.handle = handle;
|
|
1245
1412
|
return handle;
|
|
1246
|
-
}
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1413
|
+
}
|
|
1414
|
+
|
|
1415
|
+
const { error } = outcome;
|
|
1416
|
+
if (error instanceof SubcCallError && error.code === "route_closed") throw error;
|
|
1417
|
+
if (!this.closeStarted && isConsumerReconnectTransient(error)) {
|
|
1418
|
+
try {
|
|
1419
|
+
await this.reconnectAfterDrop(error);
|
|
1420
|
+
} catch (reconnectError) {
|
|
1421
|
+
throw this.notSentRecoveryError("route.open was not sent and reconnect failed", reconnectError);
|
|
1255
1422
|
}
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
);
|
|
1423
|
+
continue;
|
|
1424
|
+
}
|
|
1425
|
+
if (!this.closeStarted && error instanceof SubcError && isRetryableRouteOpenCode(error.code)) {
|
|
1426
|
+
// The deadline is the ONLY binder here. An attempt cap used to share
|
|
1427
|
+
// this condition, and because the capped backoff sums to ~3.1s it
|
|
1428
|
+
// strictly dominated the deadline — the advertised reload patience was
|
|
1429
|
+
// never delivered, so every module restart whose reload exceeded ~3s
|
|
1430
|
+
// failed managed callers with module_reloading. A restart legitimately
|
|
1431
|
+
// keeps routes refused for about a minute; the backoff cap below bounds
|
|
1432
|
+
// retry pressure instead.
|
|
1433
|
+
routeRetryAttempt += 1;
|
|
1434
|
+
refusals.record(error);
|
|
1435
|
+
const remaining = deadline - this.opts.now();
|
|
1436
|
+
if (remaining > 0) {
|
|
1437
|
+
// Every route on a connection is closed together when its module
|
|
1438
|
+
// drains, so without jitter they all retry in lock step and arrive at
|
|
1439
|
+
// the daemon as one burst each round.
|
|
1440
|
+
await this.opts.sleep(Math.min(equalJitter(routeRetryDelay, this.opts.random), remaining));
|
|
1441
|
+
routeRetryDelay = Math.min(routeRetryDelay * 2, this.opts.reconnectBackoff.capMs);
|
|
1442
|
+
continue;
|
|
1274
1443
|
}
|
|
1275
|
-
throw this.
|
|
1444
|
+
throw this.routeOpenRetryExhausted(cached.moduleId, routeRetryAttempt, refusals);
|
|
1276
1445
|
}
|
|
1446
|
+
throw this.terminalCallError(`route.open failed for module ${cached.moduleId}`, error);
|
|
1277
1447
|
}
|
|
1278
1448
|
}
|
|
1279
1449
|
|
|
1450
|
+
/**
|
|
1451
|
+
* The not_sent error for a route.open whose retry deadline ran out. Its code
|
|
1452
|
+
* and cause are the most recent refusal, as they always were; its message
|
|
1453
|
+
* describes the most informative refusal seen, so a module that was reloading
|
|
1454
|
+
* is not reported as admission pressure on the client's own connection.
|
|
1455
|
+
*/
|
|
1456
|
+
private routeOpenRetryExhausted(moduleId: string, attempts: number, refusals: RouteOpenRefusals): SubcCallError {
|
|
1457
|
+
const { best, last } = refusals;
|
|
1458
|
+
if (!best || !last) {
|
|
1459
|
+
return this.notSentCallError(
|
|
1460
|
+
`route.open for module ${moduleId} waited until its deadline for one of ${MAX_ROUTE_OPENS_IN_FLIGHT} route.open slots on this connection`,
|
|
1461
|
+
);
|
|
1462
|
+
}
|
|
1463
|
+
const recent = last === best ? "" : `; the most recent refusal was ${describeRouteOpenRefusal(last)}`;
|
|
1464
|
+
return new SubcCallError(
|
|
1465
|
+
"not_sent",
|
|
1466
|
+
`route.open failed for module ${moduleId}: ${describeRouteOpenRefusal(best)} (retry deadline exhausted after ${attempts} attempts${recent})`,
|
|
1467
|
+
last.code,
|
|
1468
|
+
last,
|
|
1469
|
+
);
|
|
1470
|
+
}
|
|
1471
|
+
|
|
1280
1472
|
// Stamped by dispatch() on every inbound frame; read by the liveness probe.
|
|
1281
1473
|
private lastInboundAtMs = 0;
|
|
1282
1474
|
// Single-flight guard: overlapping deadline-no-drop settles share one probe.
|
|
@@ -1949,6 +2141,57 @@ export function isRetryableRouteOpenCode(code: string | undefined): boolean {
|
|
|
1949
2141
|
);
|
|
1950
2142
|
}
|
|
1951
2143
|
|
|
2144
|
+
/**
|
|
2145
|
+
* "Equal jitter": half the delay is kept and the other half is random, so
|
|
2146
|
+
* retries spread out while still backing off. `random` returns a value in [0, 1).
|
|
2147
|
+
*/
|
|
2148
|
+
function equalJitter(delayMs: number, random: () => number): number {
|
|
2149
|
+
const half = delayMs / 2;
|
|
2150
|
+
return half + random() * half;
|
|
2151
|
+
}
|
|
2152
|
+
|
|
2153
|
+
// The daemon's reasons for refusing a route.open because too many binds are
|
|
2154
|
+
// already in flight: on the client's connection, or towards the target module
|
|
2155
|
+
// (crates/subc-daemon/src/control.rs, route_open_capacity_refusal and
|
|
2156
|
+
// route_open_target_capacity_refusal). Both are sent as target_unavailable.
|
|
2157
|
+
const ROUTE_OPEN_ADMISSION_PRESSURE_REASONS = new Set(["open_admission_full", "target_binds_full"]);
|
|
2158
|
+
// Matches the messages of those same admission-pressure refusals. The daemon
|
|
2159
|
+
// currently logs the reason but leaves it out of the refusal's detail, so the
|
|
2160
|
+
// message is the only way to recognise them.
|
|
2161
|
+
const ROUTE_OPEN_ADMISSION_PRESSURE_MESSAGE = /route\.open binds in flight|route\.bind relays in flight/;
|
|
2162
|
+
|
|
2163
|
+
function refusalReason(refusal: SubcError): string | undefined {
|
|
2164
|
+
const detail = refusal.detail;
|
|
2165
|
+
if (typeof detail !== "object" || detail === null || !("reason" in detail)) return undefined;
|
|
2166
|
+
const reason = (detail as { reason?: unknown }).reason;
|
|
2167
|
+
return typeof reason === "string" ? reason : undefined;
|
|
2168
|
+
}
|
|
2169
|
+
|
|
2170
|
+
/**
|
|
2171
|
+
* How much a route.open refusal says about why the target was unreachable,
|
|
2172
|
+
* highest first: the module was changing state (reloading or warming); a
|
|
2173
|
+
* delegation was not registered; the daemon was refusing for admission pressure
|
|
2174
|
+
* (too many binds in flight); anything else.
|
|
2175
|
+
*/
|
|
2176
|
+
function routeOpenRefusalRank(refusal: SubcError): number {
|
|
2177
|
+
if (refusal.code === "module_reloading" || refusal.code === "module_warming") return 3;
|
|
2178
|
+
const reason = refusalReason(refusal);
|
|
2179
|
+
if (refusal.code === "delegation_not_registered" || reason === "delegation_not_registered") return 2;
|
|
2180
|
+
if (refusal.code === "target_unavailable") {
|
|
2181
|
+
const admissionPressure =
|
|
2182
|
+
reason === undefined
|
|
2183
|
+
? ROUTE_OPEN_ADMISSION_PRESSURE_MESSAGE.test(refusal.message)
|
|
2184
|
+
: ROUTE_OPEN_ADMISSION_PRESSURE_REASONS.has(reason);
|
|
2185
|
+
if (admissionPressure) return 1;
|
|
2186
|
+
}
|
|
2187
|
+
return 0;
|
|
2188
|
+
}
|
|
2189
|
+
|
|
2190
|
+
function describeRouteOpenRefusal(refusal: SubcError): string {
|
|
2191
|
+
const reason = refusalReason(refusal);
|
|
2192
|
+
return `${refusal.code ?? "refused"}${reason === undefined ? "" : ` (reason ${reason})`}: ${refusal.message}`;
|
|
2193
|
+
}
|
|
2194
|
+
|
|
1952
2195
|
export const UNKNOWN_CHANNEL = "unknown_channel";
|
|
1953
2196
|
export const STALE_ROUTE_EPOCH = "stale_route_epoch";
|
|
1954
2197
|
|
|
@@ -1980,6 +2223,8 @@ function normalizeConnectOptions(opts: ConnectOptions): NormalizedConnectOptions
|
|
|
1980
2223
|
targetKind: opts.targetKind ?? DEFAULT_MANAGED_TARGET_KIND,
|
|
1981
2224
|
reconnectBackoff: opts.reconnectBackoff ?? DEFAULT_RECONNECT_BACKOFF,
|
|
1982
2225
|
sleep: opts.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms))),
|
|
2226
|
+
now: opts.now ?? Date.now,
|
|
2227
|
+
random: opts.random ?? Math.random,
|
|
1983
2228
|
routeOpenRetryDeadlineMs: opts.routeOpenRetryDeadlineMs ?? ROUTE_OPEN_RETRY_DEADLINE_MS,
|
|
1984
2229
|
timeoutArbitrationGraceMs: opts.timeoutArbitrationGraceMs ?? TIMEOUT_ARBITRATION_GRACE_MS,
|
|
1985
2230
|
livenessProbeWindowMs: opts.livenessProbeWindowMs ?? LIVENESS_PROBE_WINDOW_MS,
|