Actions
Bug #17607
closedChildProcess vs RUBY_PIPE_NONBLOCK_DEFAULT
Bug #17607:
ChildProcess vs RUBY_PIPE_NONBLOCK_DEFAULT
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-linux]
Description
I am investigating why ChildProcess test suite fails running against Ruby 3.0 1. The current failure is:
1) ChildProcess can write to stdin interactively if duplex = true
Failure/Error: raise msg
RuntimeError:
timed out after 10 seconds:
expected "hello\ncat: -: Resource temporarily unavailable\n" to match /\Ahello\r?\n\z/m
Diff:
@@ -1,2 +1,3 @@
-/\Ahello\r?\n\z/m
+hello
+cat: -: Resource temporarily unavailable
# ./spec/spec_helper.rb:197:in `wait_until'
# ./spec/io_spec.rb:121:in `block (2 levels) in <top (required)>'
and as far as I can tell, the issue is that RUBY_PIPE_NONBLOCK_DEFAULT in io.c, which was 0, was changed to O_NONBLOCK in 0e3b0fcdba70cf96a8e0654eb8f50aacb8024bd4. I have tried to replace the O_NONBLOCK by 0 and the test succeeded. Unfortunately, other test case started to fail then. I am not really sure what might be the right fix.
This might have also reintroduced the #15356.
Actions