From 44bdb1697c8f182737a10853e6a23cb7085f637c Mon Sep 17 00:00:00 2001 From: goodboy Date: Fri, 24 Apr 2026 22:48:35 -0400 Subject: [PATCH] Tighten orphan-SIGINT xfail to `strict=True` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Re-classify `test_orphaned_subactor_sigint_cleanup_DRAFT` from flakey-env-sensitive (`strict=False` w/ "passes in isolation, flakey in full suite") to a hard known-gap (`strict=True`) with the orphan-SIGINT hang as the documented cause. The previous framing ("env pollution") let the test silently pass when ordering happened to favor it; the new framing forces an XPASS-as-FAIL the moment the underlying gap is actually closed, so we can drop the mark intentionally instead of accidentally. Reason text + leading `# Known-gap test —` comment both point at `ai/conc-anal/subint_forkserver_orphan_sigint_hang_issue.md` for the full diagnosis. (this patch was generated in some part by [`claude-code`][claude-code-gh]) [claude-code-gh]: https://github.com/anthropics/claude-code --- tests/spawn/test_subint_forkserver.py | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/tests/spawn/test_subint_forkserver.py b/tests/spawn/test_subint_forkserver.py index 637d2ec6..bde3c3f0 100644 --- a/tests/spawn/test_subint_forkserver.py +++ b/tests/spawn/test_subint_forkserver.py @@ -446,20 +446,19 @@ def _process_alive(pid: int) -> bool: return False -# Flakey under session-level env pollution (leftover -# subactor PIDs from earlier tests competing for ports / -# inheriting the harness subprocess's FDs). Passes -# cleanly in isolation, fails in suite; `strict=False` -# so either outcome is tolerated until the env isolation -# is improved. Tracker: +# Known-gap test — `subint_forkserver` orphan-SIGINT +# handling. See # `ai/conc-anal/subint_forkserver_orphan_sigint_hang_issue.md`. +# `strict=True` so if a future fix closes the gap the +# XPASS surfaces as a FAIL and forces us to drop the +# mark intentionally. @pytest.mark.xfail( - strict=False, + strict=True, reason=( - 'Env-pollution sensitive. Passes in isolation, ' - 'flakey in full-suite runs; orphan subactor may ' - 'take longer than 10s to exit when competing for ' - 'resources with leftover state from earlier tests.' + 'Orphan subactor SIGINT delivery: trio event loop ' + 'on non-main thread post-fork doesn\'t see the ' + 'external SIGINT → KBI path. See tracker doc.\n' + 'ai/conc-anal/subint_forkserver_orphan_sigint_hang_issue.md' ), ) @pytest.mark.timeout(