From: "vo.x (Vit Ondruch)" Date: 2012-11-08T23:03:43+09:00 Subject: [ruby-core:49101] [ruby-trunk - Bug #7311][Open] DRb test suite fails when hostname cannot be reached Issue #7311 has been reported by vo.x (Vit Ondruch). ---------------------------------------- Bug #7311: DRb test suite fails when hostname cannot be reached https://bugs.ruby-lang.org/issues/7311 Author: vo.x (Vit Ondruch) Status: Open Priority: Normal Assignee: Category: Target version: ruby -v: ruby 2.0.0dev (2012-11-07 trunk 37538) [x86_64-linux] =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 -- http://bugs.ruby-lang.org/