Skip to content

Resolve native macOS stdout-capture regressions on both architectures #633

Description

@LunaStev

Observed at PR #631 head d811e0c2accc8997eecb5071f8752f88e9fb44e4. Failing CI job.

Both native macOS jobs fail the same two tests in tools.test_std_io_runtime:

  • test_capture_has_no_inherited_pipe_reader_and_no_parent_leak: fixture exits 12.
  • test_capture_writer_observes_consumer_closure: fixture exits 11.

capture.wave exit 12 combines child exit status, byte count and payload checks. capture_close.wave exit 11 combines wait failure and non-normal child termination. Logs contain no child status or payload, so they do not establish a leaked reader, exec failure, or SIGPIPE root cause.

Reproduce on each native host with the repository std installed:

cargo test --locked --test std_io_regressions --jobs 2 -- --nocapture

Trace fork return conventions, descriptor remapping/closure, script execution and child wait status. Compare a minimal executable child with the generated Python shebang child to distinguish runtime defects from fixture assumptions. Retain the closed-standard-descriptor and early-consumer-closure checks.

Acceptance:

  • Both capture scenarios pass repeatedly on native amd64 and arm64 macOS.
  • A missing child reader is demonstrated by descriptor inspection and bounded producer termination.
  • Preserve child status and capture contents when a check fails.
  • No libc binding workaround and no platform skip to hide failure.

Follow-up to #559 after its child-reader cleanup; related to broader Darwin provider audit #434. The two failures are intentionally grouped until evidence establishes different root causes.

Source references:

Both affected jobs: amd64, arm64.

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