On Wed, 16 Jun 2021 22:10:56 GMT, Mark Sheppard <mshep...@openjdk.org> wrote:
>> JDK-8265369 [macos-aarch64] java/net/MulticastSocket/Promiscuous.java failed >> with "SocketException: Cannot allocate memory" >> >> The test java/net/MulticastSocket/Promiscuous.java has been observed to fail >> on a regular basis on macosx-aarch. >> This is typically under heavy test load on a test machine. Analysis of the >> problem have >> shown that the setsockopt for joining a multicast group will intermittently >> fail with ENOMEM. >> >> While analysis of test environment shows significant memory usage and some >> memory pressure, it is >> not excessive and as such it is deemed transition or temporary condition, >> such that a retry of the >> setsockopt system call, has been seen to mitigate the issue. This adds to >> the stability of the >> Promiscuous.java test and reduces test failure noise. >> >> The proposed fix is in >> open/src/java.base/unix/native/libnet/PlainDatagramSocketImpl.c >> in the mcast_join_leave function. That is, if setsockopt to join an mcast >> group fails, and the errno == ENOMEM, >> then re-invoke the setsockopt system call for joining a mcast group. >> The change has been applied as a conditional compilation. >> Additionally this change result in the Promiscuous.java test being removed >> from the >> ProblemList.txt. >> >> Please oblige and review the changes for a fix of the issue JDK-8265369 > > Mark Sheppard has updated the pull request incrementally with one additional > commit since the last revision: > > JDK-8265369 [macos-aarch64] java/net/MulticastSocket/Promiscuous.java > failed with "SocketException: Cannot allocate memory" > amendments as per suggestion from Chris Hegarty src/java.base/unix/native/libnet/PlainDatagramSocketImpl.c line 1843: > 1841: int res; > 1842: #endif > 1843: res will need to be declared unconditionally, no? ( since it is used on all platforms ) src/java.base/unix/native/libnet/PlainDatagramSocketImpl.c line 2122: > 2120: if (join) { > 2121: NET_ThrowCurrent(env, "setsockopt " > S_ADD_MEMBERSHIP " failed"); > 2122: } else { Accidental indentation here? ( four spaces added in front of NET_ThrowCurrent ) ------------- PR: https://git.openjdk.java.net/jdk17/pull/44