@norskvideo/ctl-test-harness 0.1.28 → 0.1.29

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/smoke.js +7 -6
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@norskvideo/ctl-test-harness",
3
- "version": "0.1.28",
3
+ "version": "0.1.29",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
package/smoke.js CHANGED
@@ -329,12 +329,13 @@ export async function runProductSmoke(slug, spec, deps = defaultSmokeDeps) {
329
329
  }
330
330
  if (handles.length)
331
331
  await deps.stopSources(handles).catch(() => { });
332
- // The control plane is a singleton that deliberately outlives its daemon, so
333
- // stopping the daemon strands it holding 127.0.0.1:14321 and every later job
334
- // on that runner fails to bind. Ask the daemon to remove it while there is
335
- // still a daemon to ask. Best-effort: a teardown that throws here would mask
336
- // the journey's own error, and a SIGKILLed job never reaches this line at all
337
- // -- the workflow's reap covers that half.
332
+ // The daemon reaps its own control-plane containers on shutdown (daemon.ts,
333
+ // model B), but only on the graceful path -- and cleanupDaemon escalates to
334
+ // SIGKILL 3s after SIGTERM, which can cut a slow `docker rm` short. Removing
335
+ // the product here does it while the daemon is calm rather than racing its
336
+ // own teardown. Best-effort: a throw here would mask the journey's own error,
337
+ // and a killed job never reaches this line -- the workflow's reap is what
338
+ // heals a runner already holding the port.
338
339
  if (registered)
339
340
  await cli(["product", "remove", spec.product.name]).catch(() => { });
340
341
  // cleanupDaemon ends with rmSync(storeDir); Docker's root-owned bind-mount