Skip to content

Establish real backpressure before asserting partial timed sends on native Windows ARM64 #635

Description

@LunaStev

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:

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugA problem that causes incorrect behavior or crashes.ciGitHub CI or CI

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions