Skip to content

doc: clarify spawnSync waits for stdio EOF - #67198

Closed
helmipradita wants to merge 1 commit into
nodejs:mainfrom
helmipradita:doc/spawn-sync-stdio-eof
Closed

helmipradita wants to merge 1 commit into
nodejs:mainfrom
helmipradita:doc/spawn-sync-stdio-eof

Conversation

@helmipradita

Copy link
Copy Markdown

Fixes: #67197

Description

Clarifies that child_process.spawnSync() waits until all stdio streams reach EOF, which means that inherited file descriptors held open by detached or background descendant processes can keep spawnSync() waiting until those descriptors close or the configured timeout expires.

  • Checklist:
    • Documentation-only change
    • Follows Commit message guidelines (Signed-off-by, Assisted-by)

Clarify that child_process.spawnSync() blocks until all stdio streams
reach EOF, which means inherited file descriptors held by background
descendant processes can keep spawnSync() waiting until all descriptors
close or a timeout is reached.

Fixes: nodejs#67197
Assisted-by: OpenCode
Signed-off-by: Helmi Pradita <helmipraditaa@gmail.com>
@nodejs-github-bot nodejs-github-bot added child_process Issues and PRs related to the child_process subsystem. doc Issues and PRs related to Node.js documentation. labels Nov 2, 2026
@github-actions

github-actions Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

Welcome to Node.js, and thank you for your first contribution!

Before review, please take a moment to read:

Please make sure every commit is signed off. For a first pull request, GitHub Actions require collaborator approval and Jenkins CI must be started by a collaborator or triager, so an initial wait is normal.

Caution

AgentScan found account activity patterns that may be consistent with automation. This is a heuristic, not proof that this pull request was opened by an agent or violates policy. AI-assisted contributions are permitted, but automated tooling must not open pull requests without advance approval, and contributors must personally understand, test, verify, and take responsibility for every submitted change. See the AgentScan analysis, AI use policy, and automation policy for additional context.

@MikeMcC399

Copy link
Copy Markdown
Contributor

@helmipradita

In you wrote #67132 (comment)

Understood, thank you for the reminder and context @MikeMcC399! I will hold off on opening any new PRs in Node.js until these are reviewed and landed.

This is now your third open PR as first-time contributor. The others are #67132 and #67111. This contravenes the recommendations in:

which advise you should tackle only one issue at a time and that you should not open any new PRs until your first PR has been approved.

Are your PRs being opened automatically?

@helmipradita

Copy link
Copy Markdown
Author

I apologize for opening this PR before my earlier submissions (#67111 and #67132) were resolved @MikeMcC399.

No, my PRs are not being opened automatically. I read issue #67197, verified the behavior locally with child processes holding inherited stdio descriptors, and manually drafted this documentation clarification to address it.

However, I completely understand the first-time contributor guidelines regarding working on one issue at a time to respect collaborator review bandwidth. I am more than happy to close this PR if you would prefer I focus exclusively on addressing feedback on #67111 and #67132 first. I will not open any additional PRs in Node.js. Thank you for keeping me accountable to the project guidelines!

@helmipradita

Copy link
Copy Markdown
Author

Closing this PR to respect the first-time contributor guidelines and keep review focus on #67111 and #67132 as requested by @MikeMcC399. Thank you!

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

Labels

agentscan:mixed-signals child_process Issues and PRs related to the child_process subsystem. doc Issues and PRs related to Node.js documentation.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

child_process.spawnSync blocks until stdio EOF even after the child is reaped — please document (detached descendant can hold it open forever)

3 participants