@adonis-agora/durable 0.56.4 → 0.56.5

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/CHANGELOG.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # @adonis-agora/durable
2
2
 
3
+ ## 0.56.5
4
+
5
+ ### Patch Changes
6
+
7
+ - [#423](https://github.com/DavideCarvalho/adonis-agora-durable/pull/423) [`5e11049`](https://github.com/DavideCarvalho/adonis-agora-durable/commit/5e110491835743bf4a4081ad37add3f19cb1fdf8) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - fix(engine): a pod killed mid-flight no longer strands its runs.
8
+
9
+ - A step result is now acknowledged only after its run is durably marked as owed a turn (its
10
+ `suspended` timer is pulled in to one lease from now). Before, a pod that settled a result and died
11
+ before — or during — the background resume left the run `suspended` until the 5-minute reconcile
12
+ wake; now any instance's due-timer poll resumes it once the dead pod's lease lapses.
13
+ - A turn that died between writing a step's `pending` checkpoint and handing the job to the broker
14
+ no longer leaves that step undispatched forever. Recovery (an orphaned `running` run, or a
15
+ `suspended` run whose lease holder died holding it) re-sends the steps that turn wrote, under the
16
+ run's lease, with their original `stepId` — a step whose first dispatch did land may run twice,
17
+ within the documented at-least-once contract.
18
+
19
+ - [#424](https://github.com/DavideCarvalho/adonis-agora-durable/pull/424) [`28ec25e`](https://github.com/DavideCarvalho/adonis-agora-durable/commit/28ec25e6a708d55cae4df0421fd042558242ae65) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - A fan step's worker no longer publishes a pickup heartbeat for a step that finishes within a second.
20
+ Every remote step's worker beat the moment it picked the task up, so a 40,000-step `ctx.all` fan
21
+ published 40,000 heartbeats, each delivered to every engine instance. For a fan step that beat only
22
+ stamps `lastHeartbeatAt` and feeds the lease renewal (a fan step cannot carry a `timeoutMs`), so the
23
+ engine now marks fan tasks `lazyPickupBeat` and the worker sends the beat once the step has run for
24
+ `PICKUP_BEAT_GRACE_MS` (1 s), or not at all when it settles first; a beat the handler sends itself
25
+ replaces it. Every other step still beats at pickup, and a worker that does not know the field beats
26
+ at pickup as before. A 40k fan with 12 subscribers locally: ~40,000 → ~300 publishes, Redis CPU −18%,
27
+ wall 4.7 s → 4.0 s.
28
+
29
+ - [#425](https://github.com/DavideCarvalho/adonis-agora-durable/pull/425) [`8b8d192`](https://github.com/DavideCarvalho/adonis-agora-durable/commit/8b8d1924cbbd4217df9c3192f334a2e255f44d83) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - Make `engine.workerHealth()` (the dashboard's `/workers`, `/health` and `/metrics`) cheap on the BullMQ transport: one shared, single-flight walk of the worker-heartbeat keyspace (reused for 1s) now serves `listWorkerGroups`, every `groupHealth` and `readAllWorkerHeartbeats`, instead of one full-keyspace SCAN walk per call per group; worker-key SCANs use `COUNT 1000`; job counts run alongside the heartbeat read; the transport pool queries its transports in parallel; and the queue/db transports' cached worker-key read coalesces concurrent misses. Response shapes, Redis keys and config are unchanged.
30
+
3
31
  ## 0.56.4
4
32
 
5
33
  ### Patch Changes
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export declare const VERSION = "0.56.4";
2
+ export declare const VERSION = "0.56.5";
3
3
  export type { AccessDeniedInfo, AccessDeniedPageOptions, AccessDeniedReason, } from './access_denied_page.js';
4
4
  export { CONSOLE as ACCESS_DENIED_CONSOLE, escapeHtml, renderAccessDeniedPage, resolveAccessDeniedPage, } from './access_denied_page.js';
5
5
  export type { AuthMode, DashboardAuthOptions, LoginHook, LoginOutcome, ResolvedDashboardAuth, SessionHook, SessionOutcome, } from './auth.js';
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export const VERSION = '0.56.4';
2
+ export const VERSION = '0.56.5';
3
3
  // The built-in "access denied" page (what a browser sees on a refused page navigation).
4
4
  export { CONSOLE as ACCESS_DENIED_CONSOLE, escapeHtml, renderAccessDeniedPage, resolveAccessDeniedPage, } from './access_denied_page.js';
5
5
  // Built-in `dashboardAuth` login screen (optional; opt-in via `config/durable_dashboard.ts`).
@@ -1237,11 +1237,34 @@ export declare class WorkflowEngine {
1237
1237
  */
1238
1238
  private releaseStaleSelfLease;
1239
1239
  /**
1240
- * The remote step this run dispatched and still awaits a result for, if any — the durable marker
1241
- * that tells {@link recoverIncomplete} "this run's work is on the transport, not in a crashed
1242
- * process". A `pending` remote checkpoint is written before the dispatch and settled by the result.
1240
+ * {@link redispatchCrashedTurnSteps} for a `suspended` run a timer pass just leased, when the run as
1241
+ * listed shows the previous lease holder died holding it: a lease is released (both columns
1242
+ * cleared) by every path that ends normally, so one still set but lapsed is a holder that never
1243
+ * reached its release — a turn SIGKILLed mid-way, most likely. A resumed turn keeps the run
1244
+ * `suspended` while it executes, so this is the only trace such a crash leaves. Called with the
1245
+ * lease held; a failure is reported and does not stop the resume.
1243
1246
  */
1244
- private inFlightRemoteStep;
1247
+ private redispatchIfHolderCrashed;
1248
+ /**
1249
+ * Re-dispatch the remote steps a CRASHED turn of `run` wrote `pending` and may never have sent.
1250
+ *
1251
+ * A turn persists a step's `pending` checkpoint BEFORE handing the job to the transport (so a fast
1252
+ * result always finds it), then settles the run. A process that dies between the two leaves a
1253
+ * `pending` step no worker ever received — and every later turn replays straight back to "pending,
1254
+ * keep waiting" (re-dispatching on replay is the opt-in `remoteRedispatchMs`, because a step may
1255
+ * legitimately run longer than any window). Observed under a SIGKILLed pod: runs stuck forever.
1256
+ *
1257
+ * The caller holds the run's lease and has evidence the turn died; this narrows it to the steps
1258
+ * THAT turn wrote: the ones enqueued at or after the run's last settle (`updatedAt` — a turn that
1259
+ * ends normally settles after its dispatches, so a step it sent is always older than its settle).
1260
+ * `sinceInclusive` is for a run still `running`: its `updatedAt` is that same turn's start.
1261
+ *
1262
+ * Each step goes out again under its own `stepId` and attempt: a step whose original dispatch did
1263
+ * land runs twice (at-least-once, as documented), and the second result finds the checkpoint
1264
+ * settled and is dropped. Only on a crash — a healthy run never gets here. Remote (polyglot)
1265
+ * workflows are left to their own turn re-drive. Returns how many steps were sent.
1266
+ */
1267
+ private redispatchCrashedTurnSteps;
1245
1268
  /**
1246
1269
  * Per-recovery bookkeeping (called once the lease is held): count the attempt, or — past
1247
1270
  * `maxRecoveryAttempts` — move a poison pill to the `dead` dead-letter state. Returns a terminal
@@ -2091,6 +2114,27 @@ export declare class WorkflowEngine {
2091
2114
  * the first fresh entry.
2092
2115
  */
2093
2116
  private noteSettledHere;
2117
+ /**
2118
+ * Make the turn a settled step result owes its run DURABLE before the result is acknowledged.
2119
+ *
2120
+ * Settling a result does two things — settle the checkpoint, then resume the run — and only the
2121
+ * first is durable: the resume runs in the background, after the transport has acknowledged the
2122
+ * result. A pod SIGKILLed in between (or mid-way through the resumed turn, which keeps the run
2123
+ * `suspended` and so is invisible to the orphan sweep) left the run parked on whatever `wakeAt` its
2124
+ * last turn wrote — for a step that is the reconcile fallback, minutes out — with nothing else to
2125
+ * wake it: the result was already acknowledged, so no redelivery re-drives it.
2126
+ *
2127
+ * So pull the suspended run's timer in to one lease from now first. The resume this instance is
2128
+ * about to run re-parks the run (or settles it) and so overwrites it; if this instance dies before
2129
+ * that, every instance's due-timer poll resumes the run once the lease a dying turn may hold has
2130
+ * lapsed. Leased like any due run, so a live turn is never doubled — at worst a resume landing after
2131
+ * the timer replays and re-parks. Only pulls a timer IN (one already due sooner is kept), and only
2132
+ * for a `suspended` run: a run still `running` has its first turn holding the lease, which re-checks
2133
+ * the step on settling (see `recheckWaitSeqs`) and is recovered by the orphan sweep if it dies.
2134
+ *
2135
+ * Best-effort: a store that refuses the write leaves the run exactly where it was before.
2136
+ */
2137
+ private markResumeOwed;
2094
2138
  private resumeInBackground;
2095
2139
  /**
2096
2140
  * Settle a batch of one run's step results; per result, `true` (settled or dropped) or the error
@@ -2135,7 +2179,7 @@ export declare class WorkflowEngine {
2135
2179
  private readCheckpoints;
2136
2180
  /**
2137
2181
  * The durable half of {@link completeRemoteResult}: settle `result` onto its checkpoint (or re-drive
2138
- * the resume when a redelivered result finds it already settled). Returns the step's checkpoint as
2182
+ * the resume when a redelivered result finds it already settled). Returns the step's checkpoint (and its run) as
2139
2183
  * read when its run should be resumed, or `undefined` when no resume is wanted (no checkpoint, or a
2140
2184
  * late result for a terminal run — terminal is terminal).
2141
2185
  */
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}
@@ -2597,8 +2597,22 @@ export class WorkflowEngine {
2597
2597
  // the contract instead: park it `suspended` on the step's deadline or the reconcile timer. The
2598
2598
  // worker's result resumes it; `resumeDueTimers` is the safety net. A LOST dispatch stays the job
2599
2599
  // of `remoteRedispatchMs` / `redispatchPending`.
2600
- const dispatched = await this.inFlightRemoteStep(run.id);
2600
+ // The durable marker of work on the transport: a `pending` remote checkpoint is written before
2601
+ // the dispatch and settled by the result.
2602
+ const checkpoints = await this.store.listCheckpoints(run.id);
2603
+ const dispatched = checkpoints.find((cp) => cp.kind === 'remote' && cp.status === 'pending');
2601
2604
  if (dispatched) {
2605
+ // `running` with a lapsed lease: the turn that wrote these checkpoints died before settling
2606
+ // the run, possibly before its dispatch reached the broker. Send what it may have lost.
2607
+ try {
2608
+ await this.redispatchCrashedTurnSteps(run, checkpoints, true);
2609
+ }
2610
+ catch (error) {
2611
+ // Not sent: leave the run `running` for the next pass rather than park it on a lost step.
2612
+ await this.store.releaseRunLock(run.id, this.instanceId).catch(() => undefined);
2613
+ console.error(`[adonis-durable] could not re-dispatch the steps of crashed run ${run.id}; retrying on a later tick:`, error);
2614
+ continue;
2615
+ }
2602
2616
  // A REMOTE workflow reads `running` only while a turn is being computed or applied, so a free
2603
2617
  // lease here means that turn was lost — the call in flight is not what the run waits on next.
2604
2618
  // Park it on a near wake so the timer pass re-drives the turn promptly (never later than the
@@ -2693,13 +2707,83 @@ export class WorkflowEngine {
2693
2707
  return released;
2694
2708
  }
2695
2709
  /**
2696
- * The remote step this run dispatched and still awaits a result for, if any — the durable marker
2697
- * that tells {@link recoverIncomplete} "this run's work is on the transport, not in a crashed
2698
- * process". A `pending` remote checkpoint is written before the dispatch and settled by the result.
2710
+ * {@link redispatchCrashedTurnSteps} for a `suspended` run a timer pass just leased, when the run as
2711
+ * listed shows the previous lease holder died holding it: a lease is released (both columns
2712
+ * cleared) by every path that ends normally, so one still set but lapsed is a holder that never
2713
+ * reached its release — a turn SIGKILLed mid-way, most likely. A resumed turn keeps the run
2714
+ * `suspended` while it executes, so this is the only trace such a crash leaves. Called with the
2715
+ * lease held; a failure is reported and does not stop the resume.
2699
2716
  */
2700
- async inFlightRemoteStep(runId) {
2701
- const checkpoints = await this.store.listCheckpoints(runId);
2702
- return checkpoints.find((cp) => cp.kind === 'remote' && cp.status === 'pending');
2717
+ async redispatchIfHolderCrashed(listed, nowMs) {
2718
+ if (listed.status !== 'suspended')
2719
+ return;
2720
+ if (listed.lockedBy === undefined || listed.lockedUntil === undefined)
2721
+ return;
2722
+ if (listed.lockedUntil > nowMs)
2723
+ return;
2724
+ try {
2725
+ await this.redispatchCrashedTurnSteps(listed, await this.store.listCheckpoints(listed.id));
2726
+ }
2727
+ catch (error) {
2728
+ console.error(`[adonis-durable] could not re-dispatch the steps of run ${listed.id} after its lease holder died; its turn proceeds:`, error);
2729
+ }
2730
+ }
2731
+ /**
2732
+ * Re-dispatch the remote steps a CRASHED turn of `run` wrote `pending` and may never have sent.
2733
+ *
2734
+ * A turn persists a step's `pending` checkpoint BEFORE handing the job to the transport (so a fast
2735
+ * result always finds it), then settles the run. A process that dies between the two leaves a
2736
+ * `pending` step no worker ever received — and every later turn replays straight back to "pending,
2737
+ * keep waiting" (re-dispatching on replay is the opt-in `remoteRedispatchMs`, because a step may
2738
+ * legitimately run longer than any window). Observed under a SIGKILLed pod: runs stuck forever.
2739
+ *
2740
+ * The caller holds the run's lease and has evidence the turn died; this narrows it to the steps
2741
+ * THAT turn wrote: the ones enqueued at or after the run's last settle (`updatedAt` — a turn that
2742
+ * ends normally settles after its dispatches, so a step it sent is always older than its settle).
2743
+ * `sinceInclusive` is for a run still `running`: its `updatedAt` is that same turn's start.
2744
+ *
2745
+ * Each step goes out again under its own `stepId` and attempt: a step whose original dispatch did
2746
+ * land runs twice (at-least-once, as documented), and the second result finds the checkpoint
2747
+ * settled and is dropped. Only on a crash — a healthy run never gets here. Remote (polyglot)
2748
+ * workflows are left to their own turn re-drive. Returns how many steps were sent.
2749
+ */
2750
+ async redispatchCrashedTurnSteps(run, checkpoints, sinceInclusive = false) {
2751
+ const registered = this.workflows.get(versionKey(run.workflow, run.workflowVersion)) ??
2752
+ this.latest.get(run.workflow);
2753
+ // No transport: nothing could have been dispatched, nothing can be sent again.
2754
+ if (registered?.remote || this.pool.size === 0)
2755
+ return 0;
2756
+ const since = run.updatedAt.getTime();
2757
+ const lost = checkpoints.filter((cp) => {
2758
+ if (cp.kind !== 'remote' || cp.status !== 'pending' || !cp.stepId)
2759
+ return false;
2760
+ const at = cp.enqueuedAt.getTime();
2761
+ return sinceInclusive ? at >= since : at > since;
2762
+ });
2763
+ for (const cp of lost) {
2764
+ await this.dispatchRemoteTask({
2765
+ runId: run.id,
2766
+ seq: cp.seq,
2767
+ name: cp.name,
2768
+ stepId: cp.stepId,
2769
+ group: cp.workerGroup ?? sanitizeQueueToken(cp.name),
2770
+ input: cp.input,
2771
+ attempt: cp.attempts,
2772
+ priority: run.priority,
2773
+ });
2774
+ this.emit({
2775
+ type: 'step.started',
2776
+ runId: run.id,
2777
+ seq: cp.seq,
2778
+ name: cp.name,
2779
+ kind: 'remote',
2780
+ redispatched: true,
2781
+ });
2782
+ }
2783
+ if (lost.length > 0) {
2784
+ console.warn(`[adonis-durable] re-dispatched ${lost.length} step(s) of run ${run.id} written by a turn that died before settling (a step that did reach a worker may run twice)`);
2785
+ }
2786
+ return lost.length;
2703
2787
  }
2704
2788
  /**
2705
2789
  * Per-recovery bookkeeping (called once the lease is held): count the attempt, or — past
@@ -2789,6 +2873,7 @@ export class WorkflowEngine {
2789
2873
  });
2790
2874
  if (!claimed)
2791
2875
  continue;
2876
+ await this.redispatchIfHolderCrashed(run, nowMs);
2792
2877
  }
2793
2878
  finally {
2794
2879
  await this.store.releaseRunLock(run.id, this.instanceId);
@@ -3162,6 +3247,7 @@ export class WorkflowEngine {
3162
3247
  return;
3163
3248
  }
3164
3249
  try {
3250
+ await this.redispatchIfHolderCrashed(run, nowMs);
3165
3251
  // A per-run hook (recovery counting / dead-lettering) may settle the run terminally instead.
3166
3252
  const settled = onLocked ? await onLocked(run) : undefined;
3167
3253
  results.push(settled ?? (await this.resumeImplicit(run.id)));
@@ -6607,6 +6693,7 @@ export class WorkflowEngine {
6607
6693
  traceparent,
6608
6694
  context,
6609
6695
  priority: opts.admission?.priority,
6696
+ lazyPickupBeat: true,
6610
6697
  attempt: 1,
6611
6698
  })), opts.transport);
6612
6699
  // Awaited below; a rejection is not left unhandled while the next round is written.
@@ -6729,11 +6816,13 @@ export class WorkflowEngine {
6729
6816
  }
6730
6817
  /** The single-result path: settle `result`, then resume its run unless its fan is still running. */
6731
6818
  async completeOneRemoteResult(result, queuedIn) {
6732
- const cp = await this.settleRemoteCheckpoint(result);
6733
- if (cp === undefined)
6819
+ const settled = await this.settleRemoteCheckpoint(result);
6820
+ if (settled === undefined)
6734
6821
  return;
6822
+ const { cp, run } = settled;
6735
6823
  if (await this.stepFanStillRunning(cp, result, queuedIn))
6736
6824
  return;
6825
+ await this.markResumeOwed(run);
6737
6826
  if (!parseStepFanGroup(cp.parallelGroup))
6738
6827
  this.noteSettledHere(result.runId, [cp.seq]);
6739
6828
  this.resumeInBackground(result.runId, fanWakeOf(cp, result));
@@ -6756,6 +6845,39 @@ export class WorkflowEngine {
6756
6845
  this.settledHere.delete(key);
6757
6846
  }
6758
6847
  }
6848
+ /**
6849
+ * Make the turn a settled step result owes its run DURABLE before the result is acknowledged.
6850
+ *
6851
+ * Settling a result does two things — settle the checkpoint, then resume the run — and only the
6852
+ * first is durable: the resume runs in the background, after the transport has acknowledged the
6853
+ * result. A pod SIGKILLed in between (or mid-way through the resumed turn, which keeps the run
6854
+ * `suspended` and so is invisible to the orphan sweep) left the run parked on whatever `wakeAt` its
6855
+ * last turn wrote — for a step that is the reconcile fallback, minutes out — with nothing else to
6856
+ * wake it: the result was already acknowledged, so no redelivery re-drives it.
6857
+ *
6858
+ * So pull the suspended run's timer in to one lease from now first. The resume this instance is
6859
+ * about to run re-parks the run (or settles it) and so overwrites it; if this instance dies before
6860
+ * that, every instance's due-timer poll resumes the run once the lease a dying turn may hold has
6861
+ * lapsed. Leased like any due run, so a live turn is never doubled — at worst a resume landing after
6862
+ * the timer replays and re-parks. Only pulls a timer IN (one already due sooner is kept), and only
6863
+ * for a `suspended` run: a run still `running` has its first turn holding the lease, which re-checks
6864
+ * the step on settling (see `recheckWaitSeqs`) and is recovered by the orphan sweep if it dies.
6865
+ *
6866
+ * Best-effort: a store that refuses the write leaves the run exactly where it was before.
6867
+ */
6868
+ async markResumeOwed(run) {
6869
+ if (run?.status !== 'suspended')
6870
+ return;
6871
+ const owedBy = this.clock() + this.leaseMs;
6872
+ if (run.wakeAt !== undefined && run.wakeAt <= owedBy)
6873
+ return;
6874
+ try {
6875
+ await this.store.updateRunIf(run.id, ['suspended'], { wakeAt: owedBy });
6876
+ }
6877
+ catch (err) {
6878
+ console.warn(`[adonis-durable] could not mark run ${run.id} as owed a resume (it recovers on its next reconcile wake): ${err instanceof Error ? err.message : String(err)}`);
6879
+ }
6880
+ }
6759
6881
  resumeInBackground(runId, fan) {
6760
6882
  this.trackEffect(this.resumeImplicit(runId, fan).catch((err) => {
6761
6883
  console.warn(`[adonis-durable] background resume of run ${runId} failed (the run recovers on its next reconcile wake): ${err instanceof Error ? err.message : String(err)}`);
@@ -6876,6 +6998,7 @@ export class WorkflowEngine {
6876
6998
  for (const { cp, result } of resumable) {
6877
6999
  const fan = parseStepFanGroup(cp.parallelGroup);
6878
7000
  if (!fan || result.status === 'failed') {
7001
+ await this.markResumeOwed(run);
6879
7002
  this.noteSettledHere(runId, singles);
6880
7003
  this.resumeInBackground(runId);
6881
7004
  return outcomes;
@@ -6889,6 +7012,7 @@ export class WorkflowEngine {
6889
7012
  barriers.set(fan.firstSeq, closed);
6890
7013
  }
6891
7014
  if (!(await closed)) {
7015
+ await this.markResumeOwed(run);
6892
7016
  this.noteSettledHere(runId, singles);
6893
7017
  this.resumeInBackground(runId, {
6894
7018
  first: fan.firstSeq,
@@ -7000,7 +7124,7 @@ export class WorkflowEngine {
7000
7124
  }
7001
7125
  /**
7002
7126
  * The durable half of {@link completeRemoteResult}: settle `result` onto its checkpoint (or re-drive
7003
- * the resume when a redelivered result finds it already settled). Returns the step's checkpoint as
7127
+ * the resume when a redelivered result finds it already settled). Returns the step's checkpoint (and its run) as
7004
7128
  * read when its run should be resumed, or `undefined` when no resume is wanted (no checkpoint, or a
7005
7129
  * late result for a terminal run — terminal is terminal).
7006
7130
  */
@@ -7033,7 +7157,7 @@ export class WorkflowEngine {
7033
7157
  // explicit `requeue`/`durable:retry`, never to a stray result.
7034
7158
  if (cp.status !== 'pending') {
7035
7159
  if (!terminal)
7036
- return cp;
7160
+ return { cp, run };
7037
7161
  return undefined;
7038
7162
  }
7039
7163
  // A result settling this step frees its flow-control slot (no-op if it wasn't queued). Released
@@ -7070,7 +7194,7 @@ export class WorkflowEngine {
7070
7194
  if (typeof claim === 'object')
7071
7195
  throw claim.error;
7072
7196
  if (!claim)
7073
- return terminal ? undefined : cp;
7197
+ return terminal ? undefined : { cp, run };
7074
7198
  await this.releaseQueueSlot(cp);
7075
7199
  this.emit({
7076
7200
  type: result.status === 'completed' ? 'step.completed' : 'step.failed',
@@ -7083,7 +7207,7 @@ export class WorkflowEngine {
7083
7207
  queueMs: startedAt.getTime() - cp.enqueuedAt.getTime(),
7084
7208
  durationMs: finishedAt.getTime() - startedAt.getTime(),
7085
7209
  });
7086
- return cp;
7210
+ return { cp, run };
7087
7211
  }
7088
7212
  /**
7089
7213
  * A slot freed on `queue` (a fleet-wide signal): resume this instance's runs blocked on it so they