Observed at PR #631 head d811e0c2accc8997eecb5071f8752f88e9fb44e4. Failing CI job.
The native Windows ARM64 MSVC I/O harness fails only test_tcp_backpressure_does_not_turn_readiness_into_an_unbounded_send, with fixture exit 16. The timed-read/cancellation/later-data test passes.
In tcp_timeout.wave, exit 16 means result.count < 0 || result.count >= 8388608. There is no recorded count or error. The elapsed-time guard precedes it and did not fail. This does not establish a timeout violation or an ARM64 ABI defect.
The fixture ignores results of tcp_set_send_buffer / tcp_set_recv_buffer, performs one 8 MiB write, and assumes every platform must complete less than that amount. It never establishes that the transport is saturated before invoking the timed operation.
Scope: validate socket-option setup, report actual results, and create bounded, deterministic backpressure on native Windows. Allow legitimate full completion before saturation; then prove the deadline/cancellation path is exercised. Compare returned counts with peer-observed data and confirmed completions before changing the Windows implementation. Investigate runtime/ABI behavior if that evidence shows a mismatch.
Reproduce using the native ARM64 CI runtime command with --test std_io_regressions --target aarch64-pc-windows-msvc --jobs 2.
Acceptance:
- The test demonstrably reaches sustained backpressure and checks a real timed operation.
- Native ARM64 runs validate partial/full successful completion, cancellation, buffer lifetime and later I/O.
- No blanket allowance for arbitrary counts, fixed sleep, larger watchdog or skip as the fix.
Related to #510 and #616. GNU/Wine success is supplementary and does not replace native MSVC validation.
Source references:
Observed at PR #631 head
d811e0c2accc8997eecb5071f8752f88e9fb44e4. Failing CI job.The native Windows ARM64 MSVC I/O harness fails only
test_tcp_backpressure_does_not_turn_readiness_into_an_unbounded_send, with fixture exit 16. The timed-read/cancellation/later-data test passes.In
tcp_timeout.wave, exit 16 meansresult.count < 0 || result.count >= 8388608. There is no recorded count or error. The elapsed-time guard precedes it and did not fail. This does not establish a timeout violation or an ARM64 ABI defect.The fixture ignores results of
tcp_set_send_buffer/tcp_set_recv_buffer, performs one 8 MiB write, and assumes every platform must complete less than that amount. It never establishes that the transport is saturated before invoking the timed operation.Scope: validate socket-option setup, report actual results, and create bounded, deterministic backpressure on native Windows. Allow legitimate full completion before saturation; then prove the deadline/cancellation path is exercised. Compare returned counts with peer-observed data and confirmed completions before changing the Windows implementation. Investigate runtime/ABI behavior if that evidence shows a mismatch.
Reproduce using the native ARM64 CI runtime command with
--test std_io_regressions --target aarch64-pc-windows-msvc --jobs 2.Acceptance:
Related to #510 and #616. GNU/Wine success is supplementary and does not replace native MSVC validation.
Source references: