RFR 8134989/10, java/net/MulticastSocket/TestInterfaces.java failed due to unexpected IP address

Felix Yang felix.yang at oracle.com
Mon Sep 4 05:29:44 UTC 2017


Hi Mark and Roger,

     thanks for the comments. Adjusted the test to just simply print 
information for all network interfaces on failing.

Webrev:

      http://cr.openjdk.java.net/~xiaofeya/8134989/webrev.01/

Thanks,
Felix
On 2017/9/1 22:44, Mark Sheppard wrote:
> Hi
>   it's  worth noting that there is diagnostic output for each of the 
> test scenarios, and that for a failure scenario
> the details of the network interface associated with the failure is 
> displayed.
>
> a typical failure scenario for this test is where a host has multiple 
> network interfaces configured with an IPv4 address
> and an unassigned IPv6 address. The unassigned IPv6 address causes 
> problems in the MulticastSocket::getInterface call flow
> which in turn uses NetworkInterface::getByInetAddress
>
> this has been rectified in JDK10, afaik, by 
> https://bugs.openjdk.java.net/browse/JDK-8179559
>
> also, for the above configuration scenario, i.e. multiple network 
> interfaces configured with unassigned IPv6 address, the
> findInterfacewithDupAddress may not show duplicate addresses as the 
> scope id will be different.
> Would the ifconfig command allow two different network interfaces to 
> be configured with the same IP address?
> Not sure, but would expect not. Also would expect (IPv6) the scope id 
> and index to be different.
>
> NetworkConfiguration.printSystemConfiguration() for a complete 
> diagnostic is a possible alternative.
>
> regards
> Mark
>
> On 01/09/2017 14:41, Roger Riggs wrote:
>> Hi Felix,
>>
>> Looks ok; though could be simpler to just print all the addresses of 
>> all NIs.
>>
>> findIntefacesWithDupAddress could use streams more effectively (if 
>> its worth the time to rewrite).
>>
>> The inetAddresses() method on NetworkInterface produces a stream of 
>> InetAddress which could
>> be filtered by "ia" and use anyMatch:.
>>
>> Maybe something like:
>>
>> List<NetworkInterface> nis = NetworkInterface.networkInterfaces()
>>                     .filter(i -> !i.equals(ni))
>>                     .filter(i -> i.inetAddresses().anyMatch(n -> 
>> n.equals(ia)))
>>                     .collect(Collectors.toList());
>>
>> $.02, Roger
>>
>> On 9/1/2017 3:47 AM, Felix Yang wrote:
>>> Hi there,
>>>
>>>     please review a test patch for isolating a network configuration 
>>> issue, which led to TestInterfaces failing from time to time.
>>>
>>> Bug:
>>>
>>>     https://bugs.openjdk.java.net/browse/JDK-8134989
>>>
>>> Webrev:
>>>
>>>     http://cr.openjdk.java.net/~xiaofeya/8134989/webrev.00/
>>>
>>> Thanks,
>>>
>>> Felix
>>>
>>
>



More information about the net-dev mailing list