Open
Conversation
ilyazub
requested changes
Jan 17, 2024
| child_pid = wait_thr.pid | ||
| pgid = Process.respond_to?(:getpgid) ? Process.getpgid(child_pid) : 0 | ||
| Process.kill(:INT, child_pid) if Process.pid != pgid | ||
| rescue Errno::ESRCH |
Collaborator
There was a problem hiding this comment.
Let's also handle race condition when the PID file was removed.
$ bundle exec turbo_tests
Using recorded test runtime
3 processes for 3 specs, ~ 1 specs per process
Randomized with seed 27875
......
Finished in 3.36 seconds (files took 3.12 seconds to load)
6 examples, 0 failures
Randomized with seed 27875
#<Thread:0x0000000001b5c2b8 $HOME/Workspace/turbo_tests/lib/turbo_tests/runner.rb:224 run> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
1: from $HOME/Workspace/turbo_tests/lib/turbo_tests/runner.rb:232:in `block in start_subprocess'
$HOME/Workspace/turbo_tests/lib/turbo_tests/runner.rb:232:in `write': No such file or directory @ rb_sysopen - tmp/test-pipes/subprocess-2 (Errno::ENOENT)
bundler: failed to load command: turbo_tests ($HOME/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/bin/turbo_tests)
Traceback (most recent call last):
1: from $HOME/Workspace/turbo_tests/lib/turbo_tests/runner.rb:232:in `block in start_subprocess'
$HOME/Workspace/turbo_tests/lib/turbo_tests/runner.rb:232:in `write': No such file or directory @ rb_sysopen - tmp/test-pipes/subprocess-2 (Errno::ENOENT)
Suggested change
| rescue Errno::ESRCH | |
| rescue Errno::ESRCH, Errno::ENOENT |
This was referenced Feb 3, 2025
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.
Currently if you hit Ctrl+C, the underlying rspec tests might continue to still run. This behaviours seemed to consistently happen in my environment (executed via
bundle exec).This PR adopts logic similar to parallel_tests that fixes this: https://github.com/grosser/parallel_tests/blob/6e9be6f529b64e5f9c8e4439754bca0b2ef3f2b1/lib/parallel_tests/cli.rb#L31-L54
An extra consideration for
turbo_testswas that the Ctrl+C might happen before the FIFO file was written to, causing the read thread to block indefinitely. A fix for this is to make the process exit monitoring thread write to the FIFO file (if not already written to) to signal the other thread to stop.