diff options
author | Yusuke Endoh <mame@ruby-lang.org> | 2021-04-07 16:34:19 +0900 |
---|---|---|
committer | Yusuke Endoh <mame@ruby-lang.org> | 2021-04-07 16:34:19 +0900 |
commit | fbbc37dc1d5b329777e6d9716118db528ab70730 (patch) | |
tree | 578c0decfb48d7ae66a37059f8a45a84d7e17a93 /test/drb/test_drb.rb | |
parent | 31ba81788729944705e9f666b52c5ca4990c311d (diff) |
test/drb/test_drb.rb: Specify the host of DRbServer
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.
Diffstat (limited to 'test/drb/test_drb.rb')
-rw-r--r-- | test/drb/test_drb.rb | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/test/drb/test_drb.rb b/test/drb/test_drb.rb index 1024618840..1ee1b265d0 100644 --- a/test/drb/test_drb.rb +++ b/test/drb/test_drb.rb @@ -323,7 +323,7 @@ class TestDRbAnyToS < Test::Unit::TestCase end def test_any_to_s - server = DRb::DRbServer.new('druby://:0') + server = DRb::DRbServer.new('druby://localhost:0') server.singleton_class.send(:public, :any_to_s) assert_equal("foo:String", server.any_to_s("foo")) assert_match(/\A#<DRbTests::TestDRbAnyToS::BO:0x[0-9a-f]+>\z/, server.any_to_s(BO.new)) @@ -335,7 +335,7 @@ end class TestDRbTCP < Test::Unit::TestCase def test_immediate_close - server = DRb::DRbServer.new('druby://:0') + server = DRb::DRbServer.new('druby://localhost:0') host, port, = DRb::DRbTCPSocket.send(:parse_uri, server.uri) socket = TCPSocket.open host, port socket.shutdown |