Stop worker processes even when finalization rethrows a task failure - #160
Stop worker processes even when finalization rethrows a task failure#160giordano wants to merge 5 commits into
Conversation
Finalization waited on the printer task and the worker tasks — rethrowing any non-interrupt failure (e.g. a throwing `test_worker` hook) — before stopping the workers left in the pool, so a propagated failure leaked live worker processes for the rest of the parent session. A failure during a serial phase additionally stranded the shared serial worker in its Ref, which even the pool cleanup would have missed, since returning it to the pool is skipped when the phase's `@sync` throws. Run the worker cleanup in a `finally` block and also stop a stranded serial worker there. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
#158 and #159 were relatively simple and hopefully uncontroversial, this one is more convoluted and probably warrants a more careful review (ignoring whitespace changes helps). At least I verified that the newly added tests fail on |
|
Sorry for the Claude review. These seem like unlikely issues that may not be worth the churn to fix unless someone actually encounters them? 🤖 2. Printer death mid-run hangs before the new cleanup — PLAUSIBLE, pre-existing. 3. The stranded serial worker is compensated for downstream instead of fixed at the source — CONFIRMED (cleanup). |
No description provided.