Skip to content

fix(node): clear nonblocking fd stdio for child pipes - #34962

Merged
littledivy merged 3 commits into
mainfrom
orch/divybot-511
Jun 6, 2026
Merged

littledivy merged 3 commits into
mainfrom
orch/divybot-511

Conversation

@divybot

@divybot divybot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

Summary:

  • clear O_NONBLOCK on Unix fd-backed stdio passed to child processes
  • stop parent child_process stdio streams from draining fds delegated into another child
  • add a Unix spec covering producer stdout passed to consumer stdin as both a stream and raw fd

Tests:

  • ./x test-spec pipe_fd_stdio_clears_nonblocking
  • ./target/debug/deno run -A tests/specs/node/child_process_pipe_fd_stdio/main.ts
  • cargo check -p deno_process
  • ./tools/format.js --check
  • ./tools/lint.js

Refs #7586
Closes denoland/divybot#511

divybot and others added 3 commits June 6, 2026 12:00
Clear O_NONBLOCK from Unix fd-backed stdio passed to child processes and prevent delegated child stdio streams from being drained by the parent process.

Co-Authored-By: Divy Srivastava <me@littledivy.com>
Document the should_clear_nonblocking flag and the EAGAIN motivation at
the fd-dup sites. Also retriggers CI past a transient artifact-upload
network failure (CreateArtifact ENOTFOUND) on the prior run.

Co-Authored-By: Divy Srivastava <me@littledivy.com>
The prior run cancelled 'test integration (2/2) debug linux-x86_64' after
an integration::lsp::* test wedged ~25min until the job timed out β€” an
LSP-suite flake unrelated to this PR's process-fd change. Empty commit to
start a fresh CI run.

Co-Authored-By: Divy Srivastava <me@littledivy.com>
@littledivy
littledivy merged commit 5938917 into main Jun 6, 2026
136 checks passed
@littledivy
littledivy deleted the orch/divybot-511 branch June 6, 2026 15:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants