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