From 555f64fdf29b6545f2dda11d92f32553ec59dcb2 Mon Sep 17 00:00:00 2001 From: goodboy Date: Thu, 23 Apr 2026 16:44:15 -0400 Subject: [PATCH] Skip-mark `subint_forkserver` nested-multierror hang Skip-mark the still-hanging `test_nested_multierrors[subint_forkserver]` via `@pytest.mark.skipon_spawn_backend('subint_forkserver', reason=...)` so it stops blocking the test matrix while the remaining bug is being chased. The mark is an inert no-op until that (in-dev) backend lands. (this patch was generated in some part by [`claude-code`][claude-code-gh]) [claude-code-gh]: https://github.com/anthropics/claude-code (cherry picked from commit 506617c695698fb4928560b0996d9605fd00fd35) (factored: kept only the tests/test_cancellation.py skip-mark; dropped the subint_forkserver conc-anal doc update) --- tests/test_cancellation.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tests/test_cancellation.py b/tests/test_cancellation.py index 17f19723..3776b3e3 100644 --- a/tests/test_cancellation.py +++ b/tests/test_cancellation.py @@ -452,6 +452,19 @@ async def spawn_and_error( await nursery.run_in_actor(*args, **kwargs) +@pytest.mark.skipon_spawn_backend( + 'subint_forkserver', + reason=( + 'Multi-level fork-spawn cancel cascade hang — ' + 'peer-channel `process_messages` loops do not ' + 'exit on `service_tn.cancel_scope.cancel()`. ' + 'See `ai/conc-anal/' + 'subint_forkserver_test_cancellation_leak_issue.md` ' + 'for the full diagnosis + candidate fix directions. ' + 'Drop this mark once the peer-chan-loop exit issue ' + 'is closed.' + ), +) @pytest.mark.timeout( 10, method='thread',