Tianyi Cui
1103b0277b
fix(session): await natural migration verifier worker exit
...
A successful verifier message was treated as terminal even though the
Worker Thread was still alive. The parent immediately terminated the
worker and detached cancellation, so an error, nonzero exit, or caller
cancellation after that message could be ignored and verification could
resolve successfully.
Keep the first successful response pending until an observed natural exit
with code 0. A missing response or nonzero exit rejects after the worker
has already exited. Error and abort callbacks retain the existing
terminate-and-join path, including its first-error and AggregateError
behavior. The scheduler stays unchanged: its permit remains held until
the verification promise settles, now after successful worker quiescence.
The worker already closes its parent port in finally, so success needs
neither a forced stop nor another protocol message.
Replace success-termination expectations with deterministic message/exit
barriers and cover post-response errors, nonzero exit, cancellation, and
permit handoff. Remove the obsolete hand-written termination thenable and
its retired unknown-assertion baseline entry. Add real source workers for
plain and Zstandard input, and require the built plain-Node migration smoke
to complete with zero termination calls. Document the settlement condition.
Native Windows CI recorded process access violation 0xC0000005 while a
migration fixture was active. Removing unnecessary successful-worker
termination is consistent with that evidence, but this commit does not
claim that the native faulting module or mechanism has been established.
The deterministic regressions prove the lifecycle defect independently;
the next native CI run must assess whether the observed crash recurs.
Validation:
- Original source failed all new message-to-exit regression scenarios;
the updated focused lifecycle file passes 19 tests with 100% coverage.
- Node 24 owning package: 19 files, 741 passed, 1 skipped; every included
package source file reaches 100% statements/branches/functions/lines.
- Real source workers passed for none/zstd; built plain-Node smoke passed
with zero terminate calls and no timeout or process signal.
- Exact Node 22.19 source-mode none/zstd workers naturally exited 0 with
zero terminate calls, exercising the async Module.register fallback.
- Host TypeScript build, focused lint, no-new-unknown-assertion gate,
README translation pairing, and all 42 doc-sync gates passed.
Related to #4387 and #4394 .
2026-10-06 11:29:17 +08:00
..
2026-09-21 08:24:18 +00:00
2026-10-06 10:17:44 +08:00
2026-10-05 11:46:52 +08:00
2026-10-06 01:39:46 +08:00
2026-10-06 10:52:35 +08:00
2026-10-05 12:53:52 +08:00
2026-08-19 18:21:26 +08:00
2026-07-26 23:29:46 +08:00
2026-08-29 15:31:12 +08:00
2026-09-25 21:59:34 +08:00
2026-09-25 21:59:34 +08:00
2026-08-06 16:38:25 +08:00
2026-09-22 21:14:06 +08:00
2026-08-29 14:26:42 +08:00
2026-08-29 20:19:38 +08:00
2026-09-28 16:04:06 +08:00
2026-09-12 22:04:16 +08:00
2026-09-12 21:30:51 +08:00
2026-09-25 18:26:12 +08:00
2026-08-24 19:09:40 +08:00
2026-08-24 19:09:40 +08:00
2026-09-23 08:32:15 +00:00
2026-09-23 08:32:15 +00:00
2026-10-05 15:12:53 +08:00
2026-10-05 15:12:53 +08:00
2026-09-18 17:44:15 +08:00
2026-10-05 12:07:57 +08:00
2026-10-05 12:53:52 +08:00
2026-09-12 20:56:26 +08:00
2026-08-09 16:39:41 +08:00
2026-07-28 01:02:43 +08:00
2026-09-03 11:16:34 +08:00
2026-10-01 00:14:13 +08:00
2026-10-01 16:33:09 +08:00
2026-09-19 20:13:58 +08:00
2026-09-07 12:41:23 +08:00
2026-10-05 18:21:54 +08:00
2026-09-23 22:21:18 +08:00
2026-09-08 20:49:10 +08:00
2026-09-30 12:52:18 +08:00
2026-09-15 20:45:49 +08:00
2026-09-30 12:52:18 +08:00
2026-09-30 12:52:18 +08:00
2026-08-13 02:29:17 +08:00
2026-10-05 17:28:27 +08:00
2026-10-05 17:28:27 +08:00
2026-08-24 22:02:44 +08:00
2026-07-23 00:39:55 +08:00
2026-08-09 01:31:57 +08:00
2026-08-11 15:23:05 +08:00
2026-08-10 22:04:13 +08:00
2026-09-21 08:24:18 +00:00
2026-09-13 15:17:06 +08:00
2026-09-08 22:31:16 +08:00
2026-09-23 22:32:06 +08:00
2026-10-05 12:07:57 +08:00
2026-10-05 12:07:57 +08:00
2026-10-06 10:17:44 +08:00
2026-10-06 10:17:44 +08:00
2026-10-06 10:17:44 +08:00
2026-10-06 10:17:44 +08:00
2026-09-13 15:13:59 +08:00
2026-08-27 23:14:31 +08:00
2026-10-01 00:02:15 +08:00
2026-10-02 12:48:01 +08:00
2026-09-28 19:12:16 +08:00
2026-10-05 23:49:47 +08:00
2026-10-03 06:33:11 +08:00
2026-10-03 06:33:11 +08:00
2026-08-10 16:34:20 +08:00
2026-09-12 20:56:26 +08:00
2026-09-23 16:11:44 +08:00
2026-09-23 16:11:44 +08:00
2026-09-23 22:32:06 +08:00
2026-09-23 22:32:06 +08:00
2026-07-29 23:55:12 +08:00
2026-08-10 22:04:13 +08:00
2026-10-06 10:52:35 +08:00
2026-09-17 23:23:48 +08:00
2026-09-12 17:06:38 +08:00
2026-09-12 17:06:38 +08:00
2026-07-30 19:57:17 +08:00
2026-10-06 10:52:35 +08:00
2026-09-23 22:32:06 +08:00
2026-10-05 18:09:01 +08:00
2026-09-21 21:28:35 +08:00
2026-09-06 02:05:27 +08:00
2026-09-16 22:00:38 +08:00
2026-10-01 16:51:21 +08:00
2026-10-01 17:29:45 +08:00
2026-10-06 10:52:35 +08:00
2026-09-23 22:32:06 +08:00
2026-09-30 12:52:18 +08:00
2026-09-30 12:52:18 +08:00
2026-09-13 14:47:56 +08:00
2026-09-13 14:47:56 +08:00
2026-09-17 00:12:27 +08:00
2026-09-25 22:19:27 +08:00
2026-09-26 22:56:57 +08:00
2026-08-11 15:23:05 +08:00
2026-09-28 14:18:03 +08:00
2026-09-23 08:32:15 +00:00
2026-09-23 08:32:15 +00:00
2026-09-23 08:32:15 +00:00
2026-09-09 13:16:09 +08:00
2026-09-21 00:04:06 +08:00
2026-09-21 00:04:06 +08:00
2026-08-18 17:56:49 +08:00
2026-08-18 19:37:53 +08:00
2026-08-18 18:27:01 +08:00
2026-09-20 12:09:57 +08:00
2026-09-19 20:18:58 +08:00
2026-09-19 20:00:11 +08:00
2026-09-19 20:00:11 +08:00
2026-10-06 11:29:17 +08:00
2026-09-12 20:56:26 +08:00
2026-09-12 20:56:26 +08:00
2026-10-06 01:39:47 +08:00
2026-09-30 23:20:22 +08:00
2026-09-30 12:47:48 +08:00
2026-08-29 14:26:42 +08:00
2026-08-23 16:28:19 +08:00
2026-07-26 02:52:48 +08:00
2026-07-26 02:52:48 +08:00
2026-09-23 22:32:06 +08:00
2026-10-05 08:57:58 +08:00
2026-10-05 18:09:01 +08:00
2026-10-05 17:20:26 +08:00
2026-09-25 00:32:15 +08:00
2026-09-18 19:08:11 +08:00
2026-09-18 19:05:33 +08:00
2026-09-18 23:40:56 +08:00
2026-09-13 12:19:46 +08:00
2026-09-13 12:19:46 +08:00
2026-09-25 01:09:44 +08:00
2026-09-12 18:52:17 +08:00
2026-09-18 19:05:32 +08:00
2026-09-13 12:08:08 +08:00
2026-09-18 19:05:32 +08:00
2026-09-18 19:05:32 +08:00
2026-09-18 19:05:32 +08:00
2026-09-25 01:09:44 +08:00
2026-09-25 01:09:44 +08:00
2026-09-25 01:09:44 +08:00
2026-09-25 01:09:44 +08:00
2026-09-18 19:05:32 +08:00
2026-09-13 12:08:08 +08:00
2026-09-18 19:07:12 +08:00
2026-10-05 18:09:01 +08:00
2026-10-05 17:20:26 +08:00
2026-08-21 11:09:25 +08:00
2026-08-21 11:09:25 +08:00
2026-09-19 11:39:05 +08:00
2026-10-05 12:53:52 +08:00
2026-09-30 12:52:18 +08:00
2026-09-15 16:15:11 +08:00
2026-08-08 12:25:41 +08:00
2026-08-08 12:25:41 +08:00
2026-08-13 00:54:38 +08:00
2026-08-13 00:54:38 +08:00
2026-09-08 21:35:18 +08:00
2026-08-21 20:35:32 +08:00
2026-09-30 12:52:18 +08:00
2026-10-06 10:52:35 +08:00
2026-09-18 19:05:32 +08:00
2026-09-18 19:05:32 +08:00
2026-09-09 19:20:29 +08:00
2026-09-17 00:12:27 +08:00
2026-09-18 19:08:11 +08:00
2026-09-12 22:25:10 +08:00
2026-09-30 12:52:18 +08:00
2026-10-05 17:28:27 +08:00
2026-09-28 13:37:20 +08:00
2026-10-05 19:35:09 +08:00
2026-10-05 19:35:09 +08:00
2026-08-23 16:28:19 +08:00
2026-08-23 16:28:19 +08:00
2026-09-21 22:41:17 +08:00
2026-09-20 13:09:14 +08:00
2026-09-19 20:13:58 +08:00
2026-09-17 16:48:06 +08:00
2026-09-20 17:35:18 +08:00
2026-09-20 17:35:18 +08:00
2026-09-23 21:09:42 +08:00
2026-09-17 14:06:14 +08:00
2026-10-06 10:52:35 +08:00
2026-08-29 11:50:13 +08:00
2026-09-17 16:48:06 +08:00
2026-09-08 13:52:08 +08:00
2026-09-09 14:46:41 +08:00
2026-09-09 14:46:41 +08:00
2026-09-06 22:44:54 +08:00
2026-09-06 22:16:00 +08:00
2026-09-22 21:44:39 +08:00
2026-08-13 15:16:12 +08:00
2026-09-30 12:52:18 +08:00
2026-09-01 11:01:05 +08:00
2026-08-19 03:01:11 +08:00
2026-08-19 03:01:11 +08:00
2026-10-05 12:07:57 +08:00
2026-10-05 12:07:57 +08:00
2026-09-23 22:32:06 +08:00
2026-10-05 12:07:57 +08:00
2026-09-29 10:34:29 +08:00
2026-10-05 12:07:57 +08:00
2026-09-23 22:32:06 +08:00
2026-08-24 21:37:14 +08:00
2026-08-19 02:26:57 +08:00
2026-08-10 16:34:20 +08:00
2026-09-17 16:00:36 +08:00
2026-10-06 10:52:35 +08:00
2026-08-10 16:34:20 +08:00
2026-08-10 16:34:20 +08:00
2026-09-20 15:50:41 +08:00
2026-09-20 15:50:41 +08:00
2026-08-10 16:34:20 +08:00
2026-08-18 01:34:25 +08:00
2026-08-18 01:34:25 +08:00
2026-09-12 20:56:26 +08:00
2026-09-12 20:56:26 +08:00
2026-09-18 20:06:44 +08:00
2026-09-30 23:20:22 +08:00
2026-09-01 20:22:05 +08:00
2026-09-04 16:23:37 +08:00
2026-09-23 22:32:06 +08:00
2026-09-23 22:32:06 +08:00
2026-08-14 16:05:48 +08:00
2026-09-21 08:24:18 +00:00
2026-08-24 22:02:44 +08:00
2026-09-21 08:24:18 +00:00
2026-09-28 23:30:05 +08:00
2026-09-28 23:30:05 +08:00
2026-08-24 22:02:44 +08:00
2026-08-20 22:10:15 +08:00
2026-08-20 22:10:35 +08:00
2026-08-13 13:07:24 +08:00
2026-08-13 13:07:24 +08:00
2026-08-21 22:22:23 +08:00
2026-09-12 20:20:02 +08:00
2026-09-12 20:20:02 +08:00
2026-08-24 22:02:44 +08:00
2026-08-24 22:02:44 +08:00
2026-09-01 21:15:04 +08:00
2026-09-01 21:15:04 +08:00
2026-09-19 20:13:58 +08:00
2026-09-19 20:13:58 +08:00
2026-08-11 15:23:05 +08:00
2026-09-28 16:04:06 +08:00
2026-09-28 16:18:09 +08:00
2026-08-14 16:10:06 +08:00
2026-08-21 22:22:23 +08:00
2026-10-01 16:33:09 +08:00
2026-09-30 12:47:48 +08:00
2026-09-30 18:10:38 +08:00
2026-09-30 18:10:38 +08:00
2026-09-17 00:12:27 +08:00
2026-09-17 00:12:27 +08:00
2026-09-05 14:37:32 +08:00
2026-10-06 01:39:46 +08:00
2026-09-08 13:52:40 +08:00
2026-09-08 13:52:40 +08:00
2026-10-05 17:20:26 +08:00
2026-10-05 18:09:01 +08:00
2026-08-11 12:35:38 +08:00
2026-09-12 18:37:56 +08:00
2026-09-17 11:15:21 +08:00
2026-09-17 11:15:21 +08:00
2026-09-21 08:24:18 +00:00
2026-09-21 08:24:18 +00:00
2026-08-10 18:04:26 +08:00
2026-08-10 18:04:26 +08:00
2026-08-23 16:02:32 +08:00
2026-09-30 12:52:18 +08:00
2026-10-05 12:07:57 +08:00
2026-08-13 13:07:57 +08:00
2026-08-23 16:16:04 +08:00
2026-09-29 10:34:29 +08:00
2026-09-29 10:34:29 +08:00
2026-09-19 15:43:10 +08:00
2026-09-19 15:43:09 +08:00
2026-09-22 21:44:39 +08:00
2026-09-21 00:04:06 +08:00
2026-09-21 00:04:06 +08:00
2026-09-19 20:13:58 +08:00
2026-09-12 20:56:26 +08:00
2026-09-24 02:32:24 +08:00