Add 20-minute timeout to CI test jobs#143
Merged
Merged
Conversation
ca345a1 to
7253cf6
Compare
Root cause: tests hang indefinitely when a language server fails to initialize or shut down. Three issues: 1. create_subprocess_shell spawns a shell wrapper (sh -c "java ..."). When the shell exits, process.kill() targets the shell, but the actual server (e.g., JVM) may continue running as an orphan, holding workspace locks that block subsequent test instances. Fix: switch to create_subprocess_exec with cmd as List[str], eliminating the shell wrapper entirely. The language server is now the direct child process. 2. All Event.wait() calls (server_ready, completions_available, etc.) had no timeout. If the server never sends the expected notification, the test blocks forever. Fix: wrap all 10 Event.wait() calls in wait_for(timeout=120). 3. LSP shutdown() request had no timeout. If the server is unresponsive, shutdown blocks forever, preventing stop() from killing the process. Fix: add 30-second timeout to shutdown request. Also: capture full process tree before signaling and kill any surviving orphaned children, and add timeout-minutes: 20 to CI as safety net.
7253cf6 to
e40ac4c
Compare
LakshyAAAgrawalP
approved these changes
Apr 11, 2026
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.
GitHub Actions jobs default to a 6-hour timeout. Multiple runs observed stuck for 2+ hours on "Run tests" while identical tests pass in 8 minutes on other runners. This wastes CI minutes and blocks PRs.
Adds
timeout-minutes: 20to both test and publish workflows. Normal runs complete in ~9 minutes.