RFR: 8179559 Solaris MulticastSocket issues
Michael McMahon
michael.x.mcmahon at oracle.com
Fri May 5 15:19:52 UTC 2017
Updated webrev at: http://cr.openjdk.java.net/~michaelm/8179559/webrev.2/
The tests have not changed from previous webrev.
Thanks,
Michael
On 05/05/2017, 15:20, Michael McMahon wrote:
> Hi Mark,
>
> It's certainly arguable that the OS should return the same address
> that was configured.
> But, I think we can work around that limitation regardless.
>
> Since I sent the first webrev, I found a bug in
> NetworkInterface.getByInetAddress()
> and after fixing that, the MulticastSocket code does not need to change.
> I'll send an updated webrev later.
>
> Thanks
> Michael.
>
> On 05/05/2017, 14:52, Mark Sheppard wrote:
>> If we look at the failure scenario then it seen that
>> with multiple network interfaces having IPv6 and IPv4 configurations,
>> where the IPv6 part is not fully configured and is not UP, but is
>> RUNNING
>>
>> wrt the change in MulticastSocket, is there not a deeper issue here?
>> that is, in the MulticastSocket.getInterface() method the invocation
>>
>> InetAddress ia = (InetAddress)
>> getImpl().getOption(SocketOptions.IP_MULTICAST_IF)
>>
>> doesn't return the same address as that which was set by the
>> MulticastSocket.setInterface()
>>
>> in the problematic configurations the IPv6 interface is not UP, but
>> it is RUNNING, MULTICAST, and
>> the address is unspecified. It would be expected that the OS would
>> return the address configured in the
>> previous setsockopt?
>> At least it would be assumed that the OS syscall would be using the
>> state of the interface
>> as criteria to avoid returning the unspecified IPv6 address in
>> preference to the UP and RUNNING and selected IPv4 address?
>> It seems the OS preference is for IPv6 regardless of the state on the
>> interface.
>> Is there an issue to be raised with Solaris OS ?
>>
>>
>> Additionally, wrt the try block incorporating the address search by
>> iterating over the network interfaces, the catch clause will return ia
>> That is, the address retrieved with via the previous getOption
>> invocation.
>> Should this not return null or even re-throw the Exception?
>> returning an Address in this case seems questionable.
>>
>> with respect to the change in MulticastSocket/Test.java
>> should the address checks be considered as OS agnostic?
>>
>> a number of multicast socket tests exclude the network interface
>> unspecified address
>> and the loopback address for consideration.
>>
>> regards
>> Mark
>>
>>
>> On 05/05/2017 11:02, Chris Hegarty wrote:
>>>> On 5 May 2017, at 10:23, Michael McMahon
>>>> <michael.x.mcmahon at oracle.com> wrote:
>>>>
>>>> Could I get the following changed reviewed please?
>>>>
>>>> It's a fix for the two Solaris Multicast socket tests that fail
>>>> always.
>>>>
>>>> http://cr.openjdk.java.net/~michaelm/8179559/webrev.1/
>>> This looks ok to me Michael. Good to have this loooooooooong standing
>>> issue finally addressed. Thank you.
>>>
>>> -Chris.
>>
More information about the net-dev
mailing list