These random failures happen because FD number allocation
is not predictable when multiple threads are running (since
MJIT thread is opening/closing files all the time).
Real-world code practically never relies on predictable FD
number allocation (because much real-world code is
multi-threaded); so it's highly unlikely there'll be any
breakage to the user.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66159 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
All normal Ruby IO methods (IO#read, IO#gets, IO#write, ...) are
all capable of appearing to be "blocking" when presented with a
file description with the O_NONBLOCK flag set; so there is
little risk of incompatibility within Ruby-using programs.
The biggest compatibility risk is when spawning external
programs. As a result, stdin, stdout, and stderr are now always
made blocking before exec-family calls.
This change will make an event-oriented MJIT usable if it is
waiting on pipes on POSIX_like platforms.
It is ALSO necessary to take advantage of (proposed lightweight
concurrency (aka "auto-Fiber") or any similar proposal for
network concurrency: https://bugs.ruby-lang.org/issues/13618
Named-pipe (FIFO) are NOT yet non-blocking by default since
they are rarely-used and may introduce compatibility problems
and extra syscall overhead for a common path.
Please revert this commit if there are problems and if I am afk
since I am afk a lot, lately.
[ruby-core:89950] [Bug #14968]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65922 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Let me silence this until I have time to work on them, and make the CI
usable for testing other features.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
The behaviour of IO#ungetbyte has been depending on the width of
Fixnums. Fixnums should be invisible nowadays. It must be a
bug. Fix [Bug #14359]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65802 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/library/win32ole/fixtures/event.xml use MSXML.DOMDocument
instead of InternetExplorer.Application. InternetExplorer.Application
is not available on some environments. Thanks to MSP-Greg (Greg L).
* spec/ruby/library/win32ole/win32ole_event/on_event_spec.rb: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/library/win32ole/win32ole_event/new_spec.rb: use
MSXML.DOMDocument. InternetExplorer.Application is not available on
some environments. Thanks to MSP-Greg (Greg L).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65412 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/library/win32ole/win32ole/shared/setproperty.rb: use
Scripting.Dictionary. InternetExplorer.Application is not available on
some environments. Thanks to MSP-Greg (Greg L).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65410 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/library/win32ole/win32ole/ole_put_methods_spec.rb: use
Scripting.Dictionary. InternetExplorer.Application is not available on
some enviroments. Thanks to MSP-Greg (Greg L).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/library/win32ole/win32ole/ole_methods_spec.rb: use Scripting
Dictionary. InternetExplorer.Application is not available on some
environments. Thanks to MSP-Greg (Greg L).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65408 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/library/win32ole/win32ole/ole_obj_help_spec.rb: use
Scripting.Dictionary. InternetExplorer.Application is not available on
some environments. Thanks to MSP-Greg (Greg L).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65407 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/library/win32ole/win32ole/ole_method_spec.rb: recuire in
platform_is block.
* spec/ruby/library/win32ole/win32ole/ole_func_methods_spec.rb: ditto.
* spec/ruby/library/win32ole/win32ole/shared/ole_method.rb: use
Scripting.Dictionary. InternetExplorer.Application is not available on
some environments. Thanks to MSP-Greg (Greg L).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/library/win32ole/fixtures/classes.rb: remove rescue block
because this file is required on Windows only.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65401 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/library/win32ole/win32ole/ole_func_methods_spec.rb: use
Scripting.Dictionary. InternetExplorer.Application is not available on
some environment. Thanks to MSP-Greg (Greg L).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65400 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/library/win32ole/invoke_spec.rb: use Scripting.Dictionary
instead of InternetExplorer.Application. InternetExplorer.Application
is not available on some environment. Thanks to MSP-Greg (Greg L).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65399 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
_getproperty spec.
* spec/ruby/library/win32ole/_getproperty_spec.rb: use
Scripting.Dictionary. InternetExplorer.Application is not available on
some environment. (Thanks to MSP-Greg (Greg L))
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65398 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
from terminate_spec.rb, as suggested here:
c7220bd3de (commitcomment-31068714)
to guard other inclusions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65392 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
to this spec as well, since the same issue was reproduced here
19842006/job/y35ae6bquf4t3x30
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65389 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Detecting the presence of constants in C headers is insufficient,
as a Linux kernel can be built with CONFIG_IPV6=n
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65055 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
like r64991, until we get helpful error logs on worker death or the
unstability is fixed.
Since mspec worker randomly dies on MinGW, maybe it should have an
option to retry worker death.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65050 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This part sometimes causes random failure like:
19382723/job/bedc33p4nolcqkp6
Let me retry this to make CI stable.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64993 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This spec seems to randomly kill mspec worker.
19390874/job/wv1bsm8skd4e1pxl
To make CI stable, let me exclude this for MinGW until we get some logs
that help debugging or resolve that.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64991 b2dd03c8-39d4-4d8f-98ff-823fe69b080e