Need reviewer for 6898234: (dc) Multicast tests fail on OpenSolaris with vboxnet0 adapter

Christopher Hegarty -Sun Microsystems Ireland Christopher.Hegarty at Sun.COM
Mon Nov 9 04:57:25 PST 2009


Hi Alan,

I don't have a problem with this change.

I wonder if some of these failures are dependent on the configuration of 
the guest OSes in VirtualBox? That is, NAT, bridged, Host-only, etc... 
What I'm getting at here is will the IP address always be 0.0.0.0?

-Chris.

Alan Bateman wrote:
> Those on build-dev will know about Kelly's efforts to run the regression 
> tests in jtreg samevm mode. Two of the tests on his ProblemList.html are:
>  test/java/nio/channels/DatagramChannel/BasicMulticastTests.java
>  test/java/nio/channels/DatagramChannel/MulticastSendReceiveTests.java
> 
> These failures turn out not to be "samevm" related but rather the tests 
> are tripping over pseudo adpaters that VirtualBox creates. The tests 
> already ignore interfaces that aren't up or don't support multicasting. 
> The proposed fix is to change the tests to ignore interfaces that appear 
> to be plumbed with "any local address" (0.0.0.0 or ::0).  That seems to 
> be good enough to filter these interfaces without resorting to native 
> code. Both tests use the same class (NetworkConfiguration) to probe the 
> interfaces and the fix is a one-line change to that test class.
> 
> Thanks,
> Alan.
> 
> 
> diff -r fe9db22a220f 
> test/java/nio/channels/DatagramChannel/NetworkConfiguration.java
> --- a/test/java/nio/channels/DatagramChannel/NetworkConfiguration.java  
> Fri Oct 30 21:31:02 2009 +0000
> +++ b/test/java/nio/channels/DatagramChannel/NetworkConfiguration.java  
> Wed Nov 04 21:08:11 2009 +0000
> @@ -73,22 +73,22 @@ class NetworkConfiguration {
> 
>             List<InetAddress> addrs = 
> Collections.list(nif.getInetAddresses());
>             for (InetAddress addr: addrs) {
> -                if (addr instanceof Inet4Address) {
> -                    List<InetAddress> list = ip4Interfaces.get(nif);
> -                    if (list == null) {
> -                        list = new LinkedList<InetAddress>();
> +                if (!addr.isAnyLocalAddress()) {
> +                    if (addr instanceof Inet4Address) {
> +                        List<InetAddress> list = ip4Interfaces.get(nif);
> +                        if (list == null) {
> +                            list = new LinkedList<InetAddress>();
> +                        }
> +                        list.add(addr);
> +                        ip4Interfaces.put(nif, list);
> +                    } else if (addr instanceof Inet6Address) {
> +                        List<InetAddress> list = ip6Interfaces.get(nif);
> +                        if (list == null) {
> +                            list = new LinkedList<InetAddress>();
> +                        }
> +                        list.add(addr);
> +                        ip6Interfaces.put(nif, list);
>                     }
> -                    list.add(addr);
> -                    ip4Interfaces.put(nif, list);
> -                }
> -                if (addr instanceof Inet6Address) {
> -                    List<InetAddress> list = ip6Interfaces.get(nif);
> -                    if (list == null) {
> -                        list = new LinkedList<InetAddress>();
> -                    }
> -                    list.add(addr);
> -                    ip6Interfaces.put(nif, list);
> -
>                 }
>             }
>         }
> 
> 
> 
> 
> 
> 


More information about the nio-dev mailing list