Update `subint_forkserver` skip reason: capture-pipe
Refresh the `test_nested_multierrors` skip-mark
reason to the final diagnosis: the hang is pytest's
default `--capture=fd` pipe filling from high-volume
subactor traceback output inherited via fds 1,2 in
fork children — `pytest -s` passes cleanly. Records
the fix direction (redirect child stdio to
`/dev/null` in the fork-child prelude) for whoever
lands the backend.
(this commit msg was generated in some part by [`claude-code`][claude-code-gh])
[claude-code-gh]: https://github.com/anthropics/claude-code
(cherry picked from commit eceed29d4a)
(factored: kept only the tests/test_cancellation.py skip-reason update of
"Pin forkserver hang to pytest `--capture=fd`"; dropped the subint
conc-anal doc + tests/spawn/test_subint_forkserver.py)
wkt/tooling_enhancements_from_mtf_spawner
parent
41813ac9a0
commit
828df7df79
|
|
@ -455,14 +455,16 @@ async def spawn_and_error(
|
||||||
@pytest.mark.skipon_spawn_backend(
|
@pytest.mark.skipon_spawn_backend(
|
||||||
'subint_forkserver',
|
'subint_forkserver',
|
||||||
reason=(
|
reason=(
|
||||||
'Multi-level fork-spawn cancel cascade hang — '
|
'Passes cleanly with `pytest -s` (no stdout capture) '
|
||||||
'peer-channel `process_messages` loops do not '
|
'but hangs under default `--capture=fd` due to '
|
||||||
'exit on `service_tn.cancel_scope.cancel()`. '
|
'pytest-capture-pipe buffer fill from high-volume '
|
||||||
'See `ai/conc-anal/'
|
'subactor error-log traceback output inherited via fds '
|
||||||
|
'1,2 in fork children. Fix direction: redirect subactor '
|
||||||
|
'stdout/stderr to `/dev/null` in `_child_target` / '
|
||||||
|
'`_actor_child_main` so forkserver children don\'t hold '
|
||||||
|
'pytest\'s capture pipe open. See `ai/conc-anal/'
|
||||||
'subint_forkserver_test_cancellation_leak_issue.md` '
|
'subint_forkserver_test_cancellation_leak_issue.md` '
|
||||||
'for the full diagnosis + candidate fix directions. '
|
'"Update — pytest capture pipe is the final gate".'
|
||||||
'Drop this mark once the peer-chan-loop exit issue '
|
|
||||||
'is closed.'
|
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
@pytest.mark.timeout(
|
@pytest.mark.timeout(
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue