fix(win32): exit-first plus bounded drain so shell settles on pipe leak - #48427
2061969365 wants to merge 3 commits into
Conversation
|
This PR doesn't fully meet our contributing guidelines and PR template. What needs to be fixed:
Please edit this PR description to address the above within 2 hours, or it will be automatically closed. If you believe this was flagged incorrectly, please let a maintainer know. |
|
The following comment was made by an LLM, it may be inaccurate: I found 2 potentially related PRs:
Both appear to tackle Windows shell/pipe handling issues. PR #44601 in particular seems to address the same fundamental problem of waiting for EOF vs process exit. You may want to check if these were previously attempted solutions or if this PR (#48427) is a more comprehensive fix that supersedes them. |
Fixes #37838. See also #32504, #24784, #29822, #20902.
On Windows, the shell tool waits for pipe EOF (close) instead of process exit, so a grandchild holding an inherited pipe (Start-Process single-side redirect, python sink, adb server, serve_forever) blocks Effect.scoped forever (120s timeout plus 16min hang reported).
Verified: single-side sink-long goes from 130s timeout to 11s exit 0; typecheck plus core shell tests pass; win32 cloud build green.