Fixes an issue where eval-system may return empty or incomplete output for valid commands #3039
Open
afrdbaig7 wants to merge 1 commit intoMoganLab:mainfrom
Open
Conversation
… output Bumped default pipe timeout from 20ms to 5000ms. Stops slow commands (like python snippets) from silently cutting off early. Changed pipe polling to append to result string instead of silently cutting large outputs at an 8KB buffer limit. Added test coverage for slow, empty, and large output cases.
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.
Fixes #2221
What changed
Increased the default timeout from 20 ms to 5000 ms
Why
The previous timeout (~500 ms total with retries) is too aggressive for real-world commands (e.g., Python or shell scripts), causing the read loop to exit before output is fully available.
A 5-second timeout is a safer default while still avoiding the risk of hanging indefinitely.
Scope
This change is limited to adjusting the timeout value. No other subprocess behavior is modified.
Tests
Added tests to cover:
slow commands (e.g.,
time.sleep(1))commands with no output
normal fast commands