summaryrefslogtreecommitdiff
path: root/test/drb
Commit message (Collapse)AuthorAgeFilesLines
* Omit a DRb test on MinGWTakashi Kokubun2022-09-161-2/+3
| | | | | | | | This test seems to leak a thread and let TestIOWait fail: https://github.com/ruby/ruby/actions/runs/3065426880/jobs/4949517274 DRb almost never seemed to stably work on MinGW. I don't think we intend to fix it either. We should just omit DRb tests when they fail on MinGW.
* omit random failure tests with FreeBSDHiroshi SHIBATA2022-09-061-0/+1
| | | | | http://rubyci.s3.amazonaws.com/freebsd13/ruby-master/log/20220906T043002Z.fail.html.gz http://rubyci.s3.amazonaws.com/freebsd13/ruby-master/log/20220905T103002Z.fail.html.gz
* Skip running a DRb test on MinGWTakashi Kokubun2022-08-252-0/+5
| | | | | | | | | | It hangs even after a retry https://github.com/ruby/ruby/runs/7966439530?check_suite_focus=true We contacted GitHub Suppport about this before, and we concluded that the problem is on our end. Unfortunately we don't have a bandwidth to fix this MinGW problem, so until we get to work on it, this should be just skipped to avoid a sporadic CI timeout.
* Prepare for removing RubyVM::JIT (#5262)Takashi Kokubun2021-12-131-1/+1
|
* [ruby/drb] Use omit instead of skip for test-unitHiroshi SHIBATA2021-09-281-3/+3
| | | | https://github.com/ruby/drb/commit/0da149e7a9
* test/drb/test_drb.rb: Specify the host of DRbServerYusuke Endoh2021-04-072-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | to try fixing the following error. http://rubyci.s3.amazonaws.com/opensuseleap/ruby-master/log/20210407T063004Z.log.html.gz ``` [ 605/21105] DRbTests::TestDRbSSLAry#test_06_next/home/chkbuild/chkbuild/tmp/build/20210407T063004Z/ruby/lib/drb/drb.rb:1138:in `method_missing': undefined method `regist' for [1, 2, "III", 4, "five", 6]:Array (NoMethodError) from /home/chkbuild/chkbuild/tmp/build/20210407T063004Z/ruby/lib/drb/extserv.rb:21:in `block in initialize' from /home/chkbuild/chkbuild/tmp/build/20210407T063004Z/ruby/.ext/common/monitor.rb:202:in `synchronize' from /home/chkbuild/chkbuild/tmp/build/20210407T063004Z/ruby/.ext/common/monitor.rb:202:in `mon_synchronize' from /home/chkbuild/chkbuild/tmp/build/20210407T063004Z/ruby/lib/drb/extserv.rb:20:in `initialize' from /home/chkbuild/chkbuild/tmp/build/20210407T063004Z/ruby/test/drb/ut_array_drbssl.rb:35:in `new' from /home/chkbuild/chkbuild/tmp/build/20210407T063004Z/ruby/test/drb/ut_array_drbssl.rb:35:in `<main>' = 100.05 s ``` Here is my analysis: The test of drb used both `druby://:0` and `druby://localhost:0` for DRbServer. However, the former listens on IPv4, and the latter does on IPv6, depending on environments. The port 0 is automatically assigned, but sometimes the same port is used to both because they are different protocols (IPv4 and IPv6). In this case, their URIs are resolved to the completely same one (`druby://localhost:port`), which confuses the method `DRb.here?` which determines the DRbObject is remote or local. This changeset uses `druby://localhost:0` consistently.
* Try to fix Leaked file descriptorKazuhiro NISHIYAMA2021-04-061-1/+3
| | | | | | | | | https://github.com/ruby/ruby/runs/2274767991?check_suite_focus=true#step:15:118 ``` Leaked file descriptor: DRbTests::TestDRbTCP#test_immediate_close: 7 : #<TCPServer:fd 7, AF_INET, 0.0.0.0, 42451> Leaked file descriptor: DRbTests::TestDRbTCP#test_immediate_close: 9 : #<IO:fd 9> Leaked file descriptor: DRbTests::TestDRbTCP#test_immediate_close: 10 : #<IO:fd 10> ```
* Rename RubyVM::MJIT to RubyVM::JITTakashi Kokubun2021-01-131-1/+1
| | | | | | | | because the name "MJIT" is an internal code name, it's inconsistent with --jit while they are related to each other, and I want to discourage future JIT implementation-specific (e.g. MJIT-specific) APIs by this rename. [Feature #17490]
* Guard all accesses to RubyVM::MJIT with defined?(RubyVM::MJIT) &&Benoit Daloze2020-12-041-1/+1
| | | | * Otherwise those tests, etc cannot run on alternative Ruby implementations.
* Explicitly loading with envutil.rbHiroshi SHIBATA2020-05-281-0/+1
|
* test/drb/test_drbssl.rb: skip LeakChecker as openssl keeps /dev/randomYusuke Endoh2020-05-271-0/+1
| | | | | | | | | | | | | | | | and /dev/urandom intentionally. OpenSSL::PKey::RSA.new opens the two random generators and keeps the file descriptors. https://github.com/openssl/openssl/blob/93f99b681ab5a1cf7062053323e09b0cad5ff854/crypto/rand/rand_unix.c#L674 They are detected by the LeakChecker as fd leak, but it is intentional. http://rubyci.s3.amazonaws.com/graviton2/ruby-master/log/20200526T160005Z.log.html.gz ``` [ 597/20199] DRbTests::TestDRbSSLAry#test_01 = 0.29 s Leaked file descriptor: DRbTests::TestDRbSSLAry#test_01: 8 #<File::Stat dev=0x6, ino=11, mode=020666, nlink=1, uid=0, gid=0, rdev=0x109, size=0, blksize=4096, blocks=0, atime=2020-05-23 14:45:13.751999995 +0000, mtime=2020-05-23 14:45:13.751999995 +0000, ctime=2020-05-23 14:45:13.751999995 +0000> Leaked file descriptor: DRbTests::TestDRbSSLAry#test_01: 9 #<File::Stat dev=0x6, ino=10, mode=020666, nlink=1, uid=0, gid=0, rdev=0x108, size=0, blksize=4096, blocks=0, atime=2020-05-23 14:45:13.755999995 +0000, mtime=2020-05-23 14:45:13.755999995 +0000, ctime=2020-05-23 14:45:13.755999995 +0000> ```
* Skip test_06_timeout for --jit-wait CITakashi Kokubun2020-03-081-0/+1
| | | | | This test has been too unstable on trunk-mjit-wait http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/2782206
* lib/drb/drb.rb: Use ruby2_keywords for keyword separationYusuke Endoh2020-02-152-0/+28
| | | | [Bug #16634]
* Add GC guardKazuhiro NISHIYAMA2020-01-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Try to fix infrequent error: https://rubyci.org/logs/rubyci.s3.amazonaws.com/solaris10-sunc/ruby-master/log/20200108T010004Z.fail.html.gz ``` 1) Error: DRbTests::TestDRbSSLCore#test_02_basic_object: RangeError: "348" is recycled object (drbssl://localhost:58371) /export/home/users/chkbuild/cb-sunc/tmp/build/20200108T010004Z/ruby/lib/drb/drb.rb:366:in `_id2ref' (drbssl://localhost:58371) /export/home/users/chkbuild/cb-sunc/tmp/build/20200108T010004Z/ruby/lib/drb/drb.rb:366:in `to_obj' (drbssl://localhost:58371) /export/home/users/chkbuild/cb-sunc/tmp/build/20200108T010004Z/ruby/lib/drb/drb.rb:1537:in `to_obj' (drbssl://localhost:58371) /export/home/users/chkbuild/cb-sunc/tmp/build/20200108T010004Z/ruby/lib/drb/drb.rb:1856:in `to_obj' (drbssl://localhost:58371) /export/home/users/chkbuild/cb-sunc/tmp/build/20200108T010004Z/ruby/lib/drb/drb.rb:620:in `recv_request' (drbssl://localhost:58371) /export/home/users/chkbuild/cb-sunc/tmp/build/20200108T010004Z/ruby/lib/drb/drb.rb:931:in `recv_request' (drbssl://localhost:58371) /export/home/users/chkbuild/cb-sunc/tmp/build/20200108T010004Z/ruby/lib/drb/drb.rb:1665:in `init_with_client' (drbssl://localhost:58371) /export/home/users/chkbuild/cb-sunc/tmp/build/20200108T010004Z/ruby/lib/drb/drb.rb:1677:in `setup_message' (drbssl://localhost:58371) /export/home/users/chkbuild/cb-sunc/tmp/build/20200108T010004Z/ruby/lib/drb/drb.rb:1641:in `perform' (drbssl://localhost:58371) /export/home/users/chkbuild/cb-sunc/tmp/build/20200108T010004Z/ruby/lib/drb/drb.rb:1734:in `block (2 levels) in main_loop' (drbssl://localhost:58371) /export/home/users/chkbuild/cb-sunc/tmp/build/20200108T010004Z/ruby/lib/drb/drb.rb:1730:in `loop' (drbssl://localhost:58371) /export/home/users/chkbuild/cb-sunc/tmp/build/20200108T010004Z/ruby/lib/drb/drb.rb:1730:in `block in main_loop' /export/home/users/chkbuild/cb-sunc/tmp/build/20200108T010004Z/ruby/test/drb/drbtest.rb:163:in `test_02_basic_object' ```
* Stop Thread.new in `DRb::TimerIdConv::TimerHolder2#on_gc`Kazuhiro NISHIYAMA2019-12-103-1/+17
| | | | and add more stop_pool after stop_service
* Revert "Add debug option to check ci failures on solaris"Kazuhiro NISHIYAMA2019-12-051-3/+0
| | | | This reverts commit f289e3994bbc6560e2e4e5905b52c35c829c972d.
* Fix thread leak in drbKazuhiro NISHIYAMA2019-12-041-0/+1
|
* Deprecate taint/trust and related methods, and make the methods no-opsJeremy Evans2019-11-181-9/+0
| | | | | | This removes the related tests, and puts the related specs behind version guards. This affects all code in lib, including some libraries that may want to support older versions of Ruby.
* Fix DRbServer#any_to_sJeremy Evans2019-10-161-0/+14
| | | | | | | | My previous fix in d0ed935d5bf8c3fce9800742a36e44fb7f63dda4 was not correct, as pointed out by cremno on GitHub. This simplifies things by just using Kernel#to_s. Also switch to bind_call(obj) instead of bind(obj).call for better performance.
* Do not raise an exception on a closed DRb socketJeremy Evans2019-10-161-0/+15
| | | | | | | | | This rescues some exceptions that could happen with a closed or shutdown DRb socket. This can prevent the server from exiting if an client socket is closed directly after it is accepted. Fixes [Bug #8039]
* Fix some DRb issues (#2552)Jeremy Evans2019-10-142-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * Handle BasicObject in drb Also fix a bug in rescue clause of any_to_s because sprintf does not handle the %l modifier. Fixes [Bug #7833] * Do not send a reply to the client if there is a connection error This allows for normal TCP shutdown (fin-ack-fin-ack instead of fin-ack-push-rst). Patch from pierre@mouraf.org (Pierre-Alexandre Meyer). Fixes [Bug #2339] * Detect fork and do not reuse forked connections in drb This associates each DRbConn with a pid, and if the pid changes, it closes any DRbConns in the pool with a pid that no longer matches. This fixes DRb servers from sending messages intended for one client to another client after forking. Fixes [Bug #2718] Fixes [Bug #14471]
* test/drb/drbtest.rb: Skip test_06_timeout on Solaris10sYusuke Endoh2019-09-021-6/+9
| | | | | | | | | | The test seems to have a race condition, which fails on very slow machine like Solaris10s. So skip it. In addition, this change restores timeout guard that was removed at 0660d7cb538cf5284d50f66adfcbd78609839715. This is because the test gets stuck forever when something wrong occurs. It is better to fail the test than stuck.
* test/drb/drbtest.rb: Use EnvUtil.timeout for timeout scale factorYusuke Endoh2019-09-011-1/+1
|
* Revert "Revert "Revert "Skip BUGs on Solaris"""Yusuke Endoh2019-09-012-3/+1
| | | | | | | This reverts commit 3be3948870f6589343c4aecb541e22fae7751b47. The Solaris environment couldn't lookup the hostname itself by a wrong setting. Now it is fixed, so try again.
* Revert "Revert "Skip BUGs on Solaris""Yusuke Endoh2019-09-012-1/+3
| | | | | | | This reverts commit 84dca8eff0cbcb1c23623b47fb78b0daf5c76e35. "exceution expired" occurred on Solaris. https://rubyci.org/logs/rubyci.s3.amazonaws.com/solaris11s-sunc/ruby-master/log/20190901T072504Z.fail.html.gz
* Revert "Skip BUGs on Solaris"Yusuke Endoh2019-09-012-3/+1
| | | | | | | This reverts commit 8adefd4cf29288f6e43f20efbdd44b215ae16c7a. I couldn't see any failure on Solaris if the guard is removed. Give it a try.
* ignore test_RangeErrorMasatoshi SEKI2019-05-041-8/+0
|
* add DRb::WeakIdConv (Bug #15711)Masatoshi SEKI2019-05-041-0/+17
|
* add DRbObject dereference test (Preparation for investigation of Bug #15711)Masatoshi SEKI2019-04-251-0/+47
|
* Just skip on armv7l-linuxnaruse2018-11-031-8/+7
| | | | | | | it seems ssl.close doesn't cause EOFError on client side, but just skip because it breaks test-all. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65518 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add timeoutnaruse2018-11-021-6/+8
| | | | | | it breaks armv7 CI. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65499 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Skip BUGs on Solariskazu2018-10-232-1/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65333 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add debug option to check ci failures on solariskazu2018-10-221-0/+3
| | | | | | | | | | | failed to start extserv?: - https://rubyci.org/logs/rubyci.s3.amazonaws.com/unstable11s/ruby-trunk/log/20181020T132506Z.fail.html.gz BUG in sysread of OpenSSL: - https://rubyci.org/logs/rubyci.s3.amazonaws.com/unstable11x/ruby-trunk/log/20181020T132408Z.fail.html.gz - https://rubyci.org/logs/rubyci.s3.amazonaws.com/unstable10x/ruby-trunk/log/20181020T131807Z.fail.html.gz git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Run background threads while testing drbkazu2018-10-204-124/+107
| | | | | | | Do not start background thread on load test/drb/drbtest.rb, and stop threads on each test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65247 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* drb: use \A and \znobu2017-12-301-0/+6
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61516 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix r60271kazu2017-10-211-0/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60282 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add a new test case for ipaddr 1.2.0 + drb/aclknu2017-10-211-0/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60271 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Make ACL::ACLEntry not suppress IPAddr::InvalidPrefixErrorknu2017-10-211-6/+12
| | | | | | | This is because it would be a user error because a pattern containing a slash shouldn't be a host name pattern but an IP address pattern. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60249 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Remove unused test files related `$SAFE>=2`kazu2017-10-093-87/+1
| | | | | | unused since r14024 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60143 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_drb.rb: removed extra spacesnobu2017-09-261-3/+3
| | | | | | | | * test/drb/test_drb.rb (TestDRbLarge#test_02_large_ary): removed unnecessary extra spaces which make the following parentheses an expression. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60026 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* use dedicated assertionsnobu2017-04-073-56/+55
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58272 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* openssl: adapt OpenSSL::PKey to OpenSSL 1.1.0 opaque structsrhe2016-06-052-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | * ext/openssl/openssl_missing.[ch]: Implement EVP_PKEY_get0_*() and {RSA,DSA,EC_KEY,DH}_get0_*() functions. OpenSSL 1.1.0 makes EVP_PKEY/RSA/DSA/DH opaque. We used to provide setter methods for each parameter of each PKey type, for example PKey::RSA#e=, but this is no longer possible because the new API RSA_set0_key() requires the 'n' at the same time. This commit adds deprecation warning to them and adds PKey::*#set_* methods as direct wrapper for those new APIs. For example, 'rsa.e = 3' now needs to be rewritten as 'rsa.set_key(rsa.n, 3, rsa.d)'. [ruby-core:75225] [Feature #12324] * ext/openssl/ossl_pkey*.[ch]: Use the new accessor functions. Implement RSA#set_{key,factors,crt_params}, DSA#set_{key,pqg}, DH#set_{key,pqg}. Emit a warning with rb_warning() when old setter methods are used. * test/drb/ut_array_drbssl.rb, test/drb/ut_drb_drbssl.rb, test/rubygems/test_gem_remote_fetcher.rb: Don't set a priv_key for DH object that are used in tmp_dh_callback. Generating a new key pair every time should be fine - actually the private exponent is ignored in OpenSSL >= 1.0.2f/1.0.1r even if we explicitly set. https://www.openssl.org/news/secadv/20160128.txt git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55285 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* use finalizer trick instead of thread.seki2016-05-221-3/+39
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55118 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* don't use keeper thread. [Bug #12342]seki2016-05-151-43/+27
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55008 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* drbtest.rb: make command an arraynobu2016-02-121-4/+3
| | | | | | | * test/drb/drbtest.rb (DRbService): make @@ruby an array to be consistent with r35424. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53812 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* additional math operationsnobu2016-01-312-4/+64
| | | | | | | * test/drb/ut_large.rb (multiply, avg, median): add additional math operations to DRbLarge. [Fix GH-1086] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53701 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add frozen_string_literal: false for all filesnaruse2015-12-1618-0/+18
| | | | | | When you change this to true, you may need to add more tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/drb/test_drb.rb: Run Rinda/DRb tests on localhost. [Fix GH-1027]seki2015-09-211-1/+1
| | | | | | | | | | patch by voxik. * test/rinda/test_rinda.rb: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51916 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* use Timeout.timeoutnobu2015-07-132-2/+2
| | | | | | | * time: Object#timeout has been deprecated a long time ago, use Timeout.timeout. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51225 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* drbtest.rb: refactornobu2015-02-121-28/+23
| | | | | | | * test/drb/drbtest.rb (test_07_public_private_protected_missing): refactor by splitting and using assert_raise. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49574 b2dd03c8-39d4-4d8f-98ff-823fe69b080e