Project

General

Profile

Actions

Bug #7311

closed

DRb test suite fails when hostname cannot be reached

Added by vo.x (Vit Ondruch) over 11 years ago. Updated over 4 years ago.

Status:
Closed
Target version:
-
ruby -v:
ruby 2.0.0dev (2012-11-07 trunk 37538) [x86_64-linux]
Backport:
[ruby-core:49101]

Description

=begin
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=1 Destination Host Unreachable
From dhcp-25-1 (10.34.25.1) icmp_seq=2 Destination Host Unreachable
From dhcp-25-1 (10.34.25.1) icmp_seq=3 Destination Host Unreachable
From dhcp-25-1 (10.34.25.1) icmp_seq=4 Destination Host Unreachable

This causes that the DRb test suite fails:

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

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

(1) Enforce usage of localhost in test suite (0001-Enforce-localhost-for-DRb-tests.patch). Unfortunately it appears it does not solve my issues completely under some (not so clear) circumstances.
(2) Detect if hostname is associated with some IP address 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], which is nasty :/

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


Files

0001-Enforce-localhost-for-DRb-tests.patch (1.66 KB) 0001-Enforce-localhost-for-DRb-tests.patch Fix the test suite by enforcing localhost vo.x (Vit Ondruch), 11/08/2012 11:03 PM
0001-Fallback-to-localhost-if-hostname-is-not-associated-.patch (718 Bytes) 0001-Fallback-to-localhost-if-hostname-is-not-associated-.patch Fallback to localhost if hosntame is not associated with IP vo.x (Vit Ondruch), 11/08/2012 11:03 PM
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0