Issue #7311 has been updated by jeremyevans0 (Jeremy Evans).

Status changed from Assigned to Closed

I also think the `0001-Fallback-to-localhost-if-hostname-is-not-associated-=
.patch` is a bad approach.  We should not force localhost if the hostname g=
iven is not associated with an IP address.  That sounds like a issue that s=
hould be reported to the user via an exception.

----------------------------------------
Bug #7311: DRb test suite fails when hostname cannot be reached
https://bugs.ruby-lang.org/issues/7311#change-80774

* Author: vo.x (Vit Ondruch)
* Status: Closed
* Priority: Normal
* Assignee: seki (Masatoshi Seki)
* Target version: =

* ruby -v: ruby 2.0.0dev (2012-11-07 trunk 37538) [x86_64-linux]
* Backport: =

----------------------------------------
=3Dbegin
I have set following hostname:

 $ hostname
 dhcp-25-70

However, it cannot be reached:

 $ ping `hostname`
 PING dhcp-25-70 (10.34.25.70) 56(84) bytes of data.
 From dhcp-25-1 (10.34.25.1) icmp_seq=3D1 Destination Host Unreachable
 From dhcp-25-1 (10.34.25.1) icmp_seq=3D2 Destination Host Unreachable
 From dhcp-25-1 (10.34.25.1) icmp_seq=3D3 Destination Host Unreachable
 From dhcp-25-1 (10.34.25.1) icmp_seq=3D4 Destination Host Unreachable

This causes that the DRb test suite fails:

 TestDRbAry#test_01 =3D 3.16 s =3D E
 TestDRbAry#test_02_collect =3D 3.01 s =3D E
 TestDRbAry#test_03_redo =3D 3.01 s =3D E
 TestDRbAry#test_05_break =3D 3.01 s =3D E
 TestDRbAry#test_06_next =3D 3.01 s =3D E
 TestDRbAry#test_07_break_18 =3D 3.01 s =3D E
 TestDRbCore#test_00_DRbObject =3D 0.15 s =3D .
 TestDRbCore#test_01 =3D 2.85 s =3D E
 TestDRbCore#test_01_02_loop =3D 3.00 s =3D E
 TestDRbCore#test_02_unknown =3D 3.01 s =3D F
 TestDRbCore#test_03 =3D 0.16 s =3D .
 TestDRbCore#test_04 =3D 0.16 s =3D .
 TestDRbCore#test_05_eq =3D 0.15 s =3D .
 TestDRbCore#test_06_timeout =3D 0.36 s =3D .
 TestDRbCore#test_07_public_private_protected_missing =3D 0.16 s =3D .
 TestDRbCore#test_08_here =3D 0.16 s =3D .
 TestDRbCore#test_09_option =3D 0.16 s =3D .
 TestDRbCore#test_10_yield =3D 1.70 s =3D E
 TestDRbCore#test_10_yield_undumped =3D 3.17 s =3D E
 TestDRbCore#test_11_remote_no_method_error =3D 0.16 s =3D .
 TestDRbLarge#test_01_large_ary =3D 0.05 s =3D .
 TestDRbLarge#test_02_large_ary =3D 0.06 s =3D .
 TestDRbLarge#test_03_large_ary =3D 2.63 s =3D E
 TestDRbLarge#test_04_many_arg =3D 0.05 s =3D .
 TestDRbLarge#test_05_too_large_ary =3D 0.07 s =3D .
 TestDRbMServer#test_01 =3D 2.88 s =3D E
 TestDRbRuby18Yield#test_01_one =3D 0.00 s =3D .
 TestDRbRuby18Yield#test_02_two =3D 0.00 s =3D .
 TestDRbRuby18Yield#test_03_many =3D 0.00 s =3D .
 TestDRbRuby18Yield#test_04_many_to_one =3D 0.00 s =3D .
 TestDRbRuby18Yield#test_05_array_subclass =3D 0.00 s =3D .
 TestDRbRuby18Yield#test_06_taint =3D 0.00 s =3D .
 TestDRbRubyYield#test_01_one =3D 0.00 s =3D .
 TestDRbRubyYield#test_02_two =3D 0.00 s =3D .
 TestDRbRubyYield#test_03_many =3D 0.00 s =3D .
 TestDRbRubyYield#test_04_many_to_one =3D 0.00 s =3D .
 TestDRbRubyYield#test_05_array_subclass =3D 0.00 s =3D .
 TestDRbRubyYield#test_06_taint =3D 0.00 s =3D .
 TestDRbSSLAry#test_01 =3D 3.09 s =3D E
 TestDRbSSLAry#test_02_collect =3D 3.01 s =3D E
 TestDRbSSLAry#test_03_redo =3D 3.01 s =3D E
 TestDRbSSLAry#test_05_break =3D 3.01 s =3D E
 TestDRbSSLAry#test_06_next =3D 3.01 s =3D E
 TestDRbSSLAry#test_07_break_18 =3D 3.01 s =3D E
 TestDRbSSLCore#test_00_DRbObject =3D 0.20 s =3D .
 TestDRbSSLCore#test_01 =3D 2.82 s =3D E
 TestDRbSSLCore#test_01_02_loop =3D 0.22 s =3D .
 TestDRbSSLCore#test_02_unknown =3D 0.20 s =3D .
 TestDRbSSLCore#test_03 =3D 0.24 s =3D .
 TestDRbSSLCore#test_04 =3D 0.21 s =3D .
 TestDRbSSLCore#test_05_eq =3D 0.23 s =3D .
 TestDRbSSLCore#test_06_timeout =3D 0.44 s =3D .
 TestDRbSSLCore#test_07_public_private_protected_missing =3D 0.29 s =3D .
 TestDRbSSLCore#test_08_here =3D 0.22 s =3D .
 TestDRbSSLCore#test_09_option =3D 0.21 s =3D .
 TestDRbSSLCore#test_10_yield =3D 0.75 s =3D E
 TestDRbSSLCore#test_10_yield_undumped =3D 3.22 s =3D E
 TestDRbSSLCore#test_11_remote_no_method_error =3D 0.24 s =3D .
 TestDRbSafe1#test_01 =3D 0.15 s =3D .
 TestDRbSafe1#test_02_collect =3D 2.60 s =3D E
 TestDRbSafe1#test_03_redo =3D 3.01 s =3D E
 TestDRbSafe1#test_05_break =3D 3.00 s =3D E
 TestDRbSafe1#test_06_next =3D 3.01 s =3D E
 TestDRbSafe1#test_07_break_18 =3D 3.01 s =3D E
 TestDRbUNIXAry#test_01 =3D 0.17 s =3D .
 TestDRbUNIXAry#test_02_collect =3D 2.84 s =3D E
 TestDRbUNIXAry#test_03_redo =3D 3.01 s =3D E
 TestDRbUNIXAry#test_05_break =3D 3.01 s =3D E
 TestDRbUNIXAry#test_06_next =3D 3.01 s =3D E
 TestDRbUNIXAry#test_07_break_18 =3D 3.01 s =3D E
 TestDRbUNIXCore#test_00_DRbObject =3D 0.16 s =3D .
 TestDRbUNIXCore#test_01 =3D 2.84 s =3D E
 TestDRbUNIXCore#test_01_02_loop =3D 0.17 s =3D .
 TestDRbUNIXCore#test_02_unknown =3D 0.16 s =3D .
 TestDRbUNIXCore#test_03 =3D 0.17 s =3D .
 TestDRbUNIXCore#test_04 =3D 0.16 s =3D .
 TestDRbUNIXCore#test_05_eq =3D 0.16 s =3D .
 TestDRbUNIXCore#test_06_timeout =3D 0.37 s =3D .
 TestDRbUNIXCore#test_07_public_private_protected_missing =3D 0.17 s =3D .
 TestDRbUNIXCore#test_08_here =3D 0.17 s =3D .
 TestDRbUNIXCore#test_09_option =3D 0.17 s =3D .
 TestDRbUNIXCore#test_10_yield =3D 1.29 s =3D E
 TestDRbUNIXCore#test_10_yield_undumped =3D 3.17 s =3D E
 TestDRbUNIXCore#test_11_remote_no_method_error =3D 0.17 s =3D .
 TestDRbYield#test_01_one =3D 2.73 s =3D E
 TestDRbYield#test_02_two =3D 3.01 s =3D E
 TestDRbYield#test_03_many =3D 3.01 s =3D E
 TestDRbYield#test_04_many_to_one =3D 3.01 s =3D E
 TestDRbYield#test_05_array_subclass =3D 3.01 s =3D E
 TestDRbYield#test_06_taint =3D 3.01 s =3D E

So there are two possible ways how to fix this issue.

(1) Enforce usage of localhost in test suite (0001-Enforce-localhost-for-DR=
b-tests.patch). Unfortunately it appears it does not solve my issues comple=
tely under some (not so clear) circumstances.
(2) Detect if hostname is associated with some IP=A0address of my computer,=
 otherwise fallback to localhost (0001-Fallback-to-localhost-if-hostname-is=
-not-associated-.patch). This resolves my issue completely.


BTW this test error later causes deadlock in TestProcess test suite [1], wh=
ich is nasty :/



[1] https://github.com/ruby/ruby/blob/trunk/test/ruby/test_process.rb#L12
=3Dend


---Files--------------------------------
0001-Enforce-localhost-for-DRb-tests.patch (1.66 KB)
0001-Fallback-to-localhost-if-hostname-is-not-associated-.patch (718 Bytes)


-- =

https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=3Dunsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>