[ruby-core:94364] [Ruby master Bug#7311] DRb test suite fails when hostname cannot be reached
From:
merch-redmine@...
Date:
2019-08-15 01:56:37 UTC
List:
ruby-core #94364
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 given is not associated with an IP address. That sounds like a issue that should 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: ---------------------------------------- =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 IPddress 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-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=unsubscribe> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>