Fix random EPIPE failure in SIGINT restore tests#1191
Merged
Conversation
Rescue Errno::EPIPE in test_sigint_restore_default and test_sigint_restore_block. The child process may exit before assert_in_out_err finishes writing "exit\n" to its stdin pipe, which is a race condition in the test setup, not an IRB bug.
Member
|
@k0kubun Do you know if this appeared only after ruby/ruby#16513 (merged yesterday)? Asking cause you mentioned "these days" and I wasn't aware that the non-parallelized bundled gems tests could also have race conditions between tests 🤔 |
st0012
approved these changes
Mar 27, 2026
Member
Author
|
Not sure if "only after". It did feel like this particular failure was happening more than once, at least for this week. Let's make tests more robust to make it work whether we have it or not 🙂 |
k0kubun
added a commit
to ruby/ruby
that referenced
this pull request
Mar 27, 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.
Rescue Errno::EPIPE in test_sigint_restore_default and test_sigint_restore_block. The child process may exit before assert_in_out_err finishes writing "exit\n" to its stdin pipe, which is a race condition in the test setup, not an IRB bug.
test-bundled-gemsCI on ruby/ruby has been unstable due to this failure (e.g. https://github.com/ruby/ruby/actions/runs/23619285229/job/68794518403) these days, and this PR attempts to mitigate it.