Hi Chris / Volker, I had already tried doing the same as is done for Linux, ie calling this first mcast_set_if_by_if_v4(env, this, fd, value); This still fails for some reason with EADDRNOTAVAIL. This error gets cleared by the if ((*env)->ExceptionCheck(env)){ (*env)->ExceptionClear(env); } as ipv6_available() still returns true, but we then still try and call mcast_set_if_by_if_v6(env, this, fd, value); which again fails with EADDRNOTAVAIL. So we have the same result. Thanks Steve Groeger IBM Runtime Technologies Hursley, Winchester Tel: (44) 1962 816911 Mobex: 279990 Mobile: 07718 517 129 Fax (44) 1962 816800 Lotus Notes: Steve Groeger/UK/IBM Internet: groeges@uk.ibm.com Unless stated otherwise above: IBM United Kingdom Limited - Registered in England and Wales with number 741598. Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU From: Chris Hegarty <chris.hegarty@oracle.com> To: Volker Simonis <volker.simonis@gmail.com> Cc: Steve Groeger <GROEGES@uk.ibm.com>, ppc-aix-port-dev@openjdk.java.net, net-dev <net-dev@openjdk.java.net> Date: 12/01/2019 14:21 Subject: Re: 8207404: MulticastSocket tests failing on Aix
On 11 Jan 2019, at 17:28, Volker Simonis <volker.simonis@gmail.com> wrote:
I think the difference is in setMulticastInterface() in PlainDatagramSocketImpl.c
#ifdef __linux__ mcast_set_if_by_if_v4(env, this, fd, value); if (ipv6_available()) { if ((*env)->ExceptionCheck(env)){ (*env)->ExceptionClear(env); } mcast_set_if_by_if_v6(env, this, fd, value); } #else /* __linux__ not defined */ if (ipv6_available()) { mcast_set_if_by_if_v6(env, this, fd, value); } else { mcast_set_if_by_if_v4(env, this, fd, value); } #endif /* __linux__ */
We should probably follow the Linux way for AIX as well.
I agree. -Chris.
On Fri, Jan 11, 2019 at 5:29 PM Chris Hegarty <chris.hegarty@oracle.com> wrote:
On 09/01/2019 15:20, Steve Groeger wrote: ...
I think I have an Linux system setup with a simarly configured interface (system has IPv6 configured but interface has no IPv6/INET6 address configured) but the test works fine when run on that system.
This is what I observe too. Confirmed by looking at the test output in the jtr file.
This was why I was asking the question on whether this should work on AIX, or whether it should fail on Linux!!!
I suspect that this is an issue with the native setsockopt on AIX. That said, if it cannot be resolved on AIX, then maybe the networking native code on AIX, should workaround it.
-Chris.
Unless stated otherwise above: IBM United Kingdom Limited - Registered in England and Wales with number 741598. Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU