Skip to content

Revert "fix(ext/node): support numeric FDs in child_process stdio array (#32959)"#33017

Merged
bartlomieju merged 1 commit intomainfrom
revert_32959
Mar 27, 2026
Merged

Revert "fix(ext/node): support numeric FDs in child_process stdio array (#32959)"#33017
bartlomieju merged 1 commit intomainfrom
revert_32959

Conversation

@bartlomieju
Copy link
Copy Markdown
Member

@bartlomieju bartlomieju commented Mar 26, 2026

Summary

Reverts #32959 (commit ffbe236) which added support for numeric FDs in child_process stdio array.

The reverted commit changed deserialization of numeric values in stdio config from Rid(ResourceId) to Fd(i32), meaning all numeric stdio values are now interpreted as raw OS file descriptors instead of Deno resource IDs. This is a breaking change because Deno's Node-compat fs.openSync currently returns Deno resource IDs, not raw file descriptors (unlike Node.js which returns raw FDs).

Any code that passes a numeric value from fs.openSync (or similar) as a stdio option now calls dup() on a wrong/nonexistent OS file descriptor instead of looking it up in Deno's resource table. This was reported as breaking Claude Code installed via Deno -- it could not run Bash at all.

#31965 needs to land first (making fs.openSync return raw FDs), and then #32959 can be re-landed safely.

@bartlomieju bartlomieju enabled auto-merge (squash) March 27, 2026 07:22
@bartlomieju bartlomieju merged commit 0a8cce4 into main Mar 27, 2026
221 of 223 checks passed
@bartlomieju bartlomieju deleted the revert_32959 branch March 27, 2026 07:23
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