Skip to content
  • nagachika's avatar
    d5a34e1b
    merge revision(s) fbbc37dc: [Backport #17802] · d5a34e1b
    nagachika authored
    	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.
    	---
    	 test/drb/test_drb.rb    | 4 ++--
    	 test/drb/test_drbssl.rb | 2 +-
    	 2 files changed, 3 insertions(+), 3 deletions(-)
    d5a34e1b
    merge revision(s) fbbc37dc: [Backport #17802]
    nagachika authored
    	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.
    	---
    	 test/drb/test_drb.rb    | 4 ++--
    	 test/drb/test_drbssl.rb | 2 +-
    	 2 files changed, 3 insertions(+), 3 deletions(-)
Loading