From: ngotogenome@... Date: 2015-07-24T11:07:18+00:00 Subject: [ruby-dev:49199] [Ruby trunk - Bug #11394] [Open] Error in test/rinda/test_rinda.rb when IPv6 address is only ::1 assigned to the loopback device Issue #11394 has been reported by Naohisa Goto. ---------------------------------------- Bug #11394: Error in test/rinda/test_rinda.rb when IPv6 address is only ::1 assigned to the loopback device https://bugs.ruby-lang.org/issues/11394 * Author: Naohisa Goto * Status: Open * Priority: Normal * Assignee: * ruby -v: * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- システム上に存在するIPv6アドレスが、ループバックデバイスに割り当てられた ::1 だけの場合、test/rinda/test_rinda.rb で以下のエラーが発生します。 Linux (Debian wheezy)の場合 。 ~~~ # ifconfig eth0 inet6 del fe80::XXXX:XXXX:XXXX:XXXX/64 % ruby test/runner.rb test/rinda/test_rinda.rb Run options: # Running tests: [ 9/39] Rinda::TestRingServer#test_make_socket_ipv6_multicast = 0.00 1) Error: Rinda::TestRingServer#test_make_socket_ipv6_multicast: Errno::ENODEV: No such device - setsockopt(2) /PREFIX/lib/ruby/2.3.0/rinda/ring.rb:161:in `setsockopt' /PREFIX/lib/ruby/2.3.0/rinda/ring.rb:161:in `make_socket' /XXXXXXXX/test/rinda/test_rinda.rb:642:in `test_make_socket_ipv6_multicast' [12/39] Rinda::TestRingServer#test_ring_server_ipv6_multicast = 0.00 2) Error: Rinda::TestRingServer#test_ring_server_ipv6_multicast: Errno::ENODEV: No such device - setsockopt(2) /PREFIX/lib/ruby/2.3.0/rinda/ring.rb:161:in `setsockopt' /PREFIX/lib/ruby/2.3.0/rinda/ring.rb:161:in `make_socket' /PREFIX/lib/ruby/2.3.0/rinda/ring.rb:107:in `block in initialize' /PREFIX/lib/ruby/2.3.0/rinda/ring.rb:105:in `each' /PREFIX/lib/ruby/2.3.0/rinda/ring.rb:105:in `initialize' /XXXXXXXX/test/rinda/test_rinda.rb:678:in `new' /auto/user3/gen-info/ngoto/testruby/daily/src/github/ruby/test/rinda/test_rinda.rb:678:in `test_ring_server_ipv6_multicast' Leaked file descriptor: Rinda::TestRingServer#test_ring_server_ipv6_multicast: 10 : # Finished tests in 1.545205s, 25.2394 tests/s, 250.4522 assertions/s. 39 tests, 387 assertions, 0 failures, 2 errors, 2 skips ruby -v: ruby 2.3.0dev (2015-07-16) [x86_64-linux] ~~~ Solaris 10 の場合。 ~~~ $ ruby test/runner.rb test/rinda/test_rinda.rb Run options: # Running tests: [ 3/39] Rinda::TestRingFinger#test_make_socket_ipv6_multicast = 0.00 s 1) Error: Rinda::TestRingFinger#test_make_socket_ipv6_multicast: Errno::ENETUNREACH: Network is unreachable - connect(2) for [ff02::1]:7647 /PREFIX/lib/ruby/2.3.0/rinda/ring.rb:430:in `connect' /PREFIX/lib/ruby/2.3.0/rinda/ring.rb:430:in `make_socket' /XXXXXXXX/test/rinda/test_rinda.rb:773:in `test_make_socket_ipv6_multicast' [ 4/39] Rinda::TestRingFinger#test_make_socket_ipv6_multicast_hops = 0.00 s 2) Error: Rinda::TestRingFinger#test_make_socket_ipv6_multicast_hops: Errno::ENETUNREACH: Network is unreachable - connect(2) for [ff02::1]:7647 /PREFIX/lib/ruby/2.3.0/rinda/ring.rb:430:in `connect' /PREFIX/lib/ruby/2.3.0/rinda/ring.rb:430:in `make_socket' /XXXXXXXX/test/rinda/test_rinda.rb:797:in `test_make_socket_ipv6_multicast_hops' Leaked file descriptor: Rinda::TestRingServer#test_ring_server_ipv6_multicast: 11 Closed file descriptor: Rinda::TestRingServer#test_shutdown: 11 Finished tests in 2.053681s, 18.9903 tests/s, 188.4421 assertions/s. 39 tests, 387 assertions, 0 failures, 2 errors, 0 skips ruby -v: ruby 2.3.0dev (2015-07-24) [sparc64-solaris2.10] ~~~ 当該テストを、IPv6がloopbackだけの場合はskipするように変更したいと思います。 -- https://bugs.ruby-lang.org/