1.3 KiB
Fix the macOS TCP regressions where cancellation during a framed send closed the actor-wide channel and replaced primary stream errors with secondary TransportClosed failures.
git diff HEAD~1..HEAD -- tractor/ipc/_transport.py tractor/_context.py tests/ipc/test_each_tpt.py tests/test_context_stream_semantics.py
Shield complete frame publication, then deliver pending cancellation immediately after leaving the shield. Preserve channel reuse instead of closing the multiplexed socket from a context-local sender. Treat TransportClosed while shipping StreamOverrun as failed delivery so the secondary error can not crash the actor-wide RPC loop.
Add deterministic unit regressions for cancellation in the middle of a frame and overrun reporting after transport closure.
Verification:
- transport/context unit regressions:
3 passed - exact TCP and UDS CI-node batches:
11 passed, 1 skipped - transport/context/clustering/RPC TCP:
88 passed - transport/context/clustering/RPC UDS:
86 passed, 2 skipped - full TCP suite:
478 passed, 9 skipped, 7 xfailed, 3 xpassed - full UDS rerun:
476 passed, 11 skipped, 8 xfailed, 2 xpassed