tractor/ai/conc-anal
Gud Boi 33fefe26d9 Doc `subint` backend hang classes + arm `dump_on_hang`
Classify and write up the two distinct hang modes hit during Phase
B subint bringup (issue #379) so future triage doesn't re-derive them
from scratch.

Deats, two new `ai/conc-anal/` docs,
- `subint_sigint_starvation_issue.md`: abandoned legacy-subint thread
  + shared GIL → main trio loop starves → signal-wakeup-fd pipe fills
  → `SIGINT` silently dropped (`strace` shows `write() = EAGAIN` on the
  wakeup-fd). Un- Ctrl-C-able. Structurally a CPython limit; blocked on
  `msgspec` PEP 684 (jcrist/msgspec#563)

- `subint_cancel_delivery_hang_issue.md`: parent-side trio task parks on
  an orphaned IPC channel after subint teardown — no clean EOF delivered
  to the waiting receive. Ctrl-C-able (main loop iterates fine); OUR bug
  to fix. Candidate fix: explicit parent-side channel abort in
  `subint_proc`'s hard-kill teardown

Cross-link the docs from their test reproducers,
- `test_stale_entry_is_deleted` (→ starvation class): wrap
  `trio.run(main)` in `dump_on_hang(seconds=20)` so a future regression
  captures a stack dump. Kept un- skipped so the dump file is
  inspectable

- `test_subint_non_checkpointing_child` (→ delivery class): extend
  docstring with a "KNOWN ISSUE" block pointing at the analysis

(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 4a3254583b)
(MTF-only portion: kept ai/conc-anal/subint_cancel_delivery_hang_issue.md ai/conc-anal/subint_sigint_starvation_issue.md tests/test_subint_cancellation.py)
2026-06-24 23:32:28 -04:00
..
fork_thread_semantics_execution_vs_memory.md Add posix-multithreaded-`fork()` explainer doc 2026-06-17 13:45:31 -04:00
spawn_time_boot_death_dup_name_issue.md Add boot-race conc-anal, widen `xfail` to `n_dups=8` 2026-06-17 17:39:44 -04:00
subint_cancel_delivery_hang_issue.md Doc `subint` backend hang classes + arm `dump_on_hang` 2026-06-24 23:32:28 -04:00
subint_sigint_starvation_issue.md Doc `subint` backend hang classes + arm `dump_on_hang` 2026-06-24 23:32:28 -04:00
test_register_duplicate_name_daemon_connect_race_issue.md Add `test_register_duplicate_name` race analysis 2026-06-17 13:45:31 -04:00
trio_033_cancel_cascade_slowdown_depth3_issue.md Bump trio depth=3 cancel timeout 6→12s 2026-06-17 17:39:44 -04:00
trio_wakeup_socketpair_busy_loop_under_fork_issue.md Add `tractor.trionics.patches` subpkg + first fix 2026-06-17 17:39:44 -04:00