Commit 05ee48e
test(node): Fix flaky ANR restart test with deterministic worker-ready signal
The `stop-and-start` ANR test restarts the worker and then blocks the event loop,
expecting the restarted worker to sample and report the ANR. It previously ran
`longWork` almost immediately after `startWorker()`.
`waitForDebuggerReady` (polling `inspector.url()`) cannot gate this: the ANR
integration opens the main-thread inspector once and never closes it, so
`inspector.url()` stays truthy across restarts and the poll returns immediately.
`_startWorker` is also async, so the new worker may not even be spawned yet. On
slow CI the event loop can block before the new worker reconnects its inspector
session, and the ANR is missed.
The worker now posts a `worker-ready` message once it is fully set up, and the
integration exposes `waitUntilWorkerReady()` so the restart path can await the
new worker's actual readiness instead of a fixed delay.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent 9851d64 commit 05ee48e
3 files changed
Lines changed: 27 additions & 6 deletions
File tree
- dev-packages/node-integration-tests/suites/anr
- packages/node/src/integrations/anr
Lines changed: 5 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
56 | | - | |
57 | | - | |
58 | | - | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
59 | 61 | | |
60 | 62 | | |
61 | 63 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
63 | | - | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
64 | 68 | | |
65 | 69 | | |
66 | 70 | | |
67 | 71 | | |
68 | 72 | | |
| 73 | + | |
69 | 74 | | |
70 | 75 | | |
71 | 76 | | |
| |||
79 | 84 | | |
80 | 85 | | |
81 | 86 | | |
82 | | - | |
83 | | - | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
84 | 92 | | |
85 | 93 | | |
86 | 94 | | |
87 | 95 | | |
| 96 | + | |
88 | 97 | | |
89 | 98 | | |
90 | 99 | | |
91 | 100 | | |
92 | 101 | | |
93 | 102 | | |
94 | 103 | | |
| 104 | + | |
95 | 105 | | |
96 | 106 | | |
97 | 107 | | |
| |||
157 | 167 | | |
158 | 168 | | |
159 | 169 | | |
| 170 | + | |
160 | 171 | | |
161 | 172 | | |
162 | 173 | | |
| |||
234 | 245 | | |
235 | 246 | | |
236 | 247 | | |
| 248 | + | |
| 249 | + | |
237 | 250 | | |
238 | 251 | | |
239 | 252 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
327 | 327 | | |
328 | 328 | | |
329 | 329 | | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
0 commit comments