Conversation
…ontinuedev#13273) On Windows, PowerShell may flush CommandNotFoundException to stdout instead of stderr, or the stderr buffer may not be populated by the time the close event fires. The previous guard `code !== 0 && stderr` left the promise in a permanently pending state when stderr was empty, causing vitest to hit its 30 s timeout before the tool's own 180 s timeout could fire. Changes: - Reject on any non-zero exit code; fall back to stdout or a generic message for diagnostics when stderr is empty. - Add -NoProfile to the Windows PowerShell invocation to prevent slow profile scripts from delaying or interfering with error output. Closes continuedev#13273
Contributor
|
All contributors have signed the CLA ✍️ ✅ |
Author
|
I have read the CLA Document and I hereby sign the CLA |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes the intermittent test hang on windows-latest reported in #13273.
Root Cause
In
runTerminalCommand.ts, theclosehandler only rejected the promise when bothcode !== 0andstderrwas non-empty:s if (code !== 0 && stderr) { reject(...) }On Windows, PowerShell's
CommandNotFoundExceptioncan be flushed to stdout instead of stderr, or the stderr buffer may not be populated by the time thecloseevent fires. When that happens the guard is false, the reject is skipped, and the promise is left permanently pending. The tool's own 180 s timeout (TIMEOUT_MS) cannot rescue it because vitest's 30 stestTimeoutfires first.Changes
-NoProfileto the Windows PowerShell invocation to prevent slow/interfering profile scripts from delaying error output.Testing
should handle non-existent commandstest now exercises the corrected path: PowerShell exits with code 1 and the promise rejects immediately whether the error lands in stderr or stdout.runTerminalCommand.test.tsare unaffected since successful commands still resolve normally.Closes #13273