OpenJDK / jdk-updates / jdk14u
changeset 57661:591e3b2374db
8044365: (dc) MulticastSendReceiveTests.java failing with ENOMEM when joining group (OS X 10.9)
Reviewed-by: alanb, vtewari, dfuchs
author | alanb |
---|---|
date | Fri, 20 Mar 2020 19:41:27 -0700 |
parents | 4426b90035bc |
children | efe766fead9d |
files | src/java.base/unix/native/libnio/ch/Net.c |
diffstat | 1 files changed, 15 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/java.base/unix/native/libnio/ch/Net.c Fri Feb 14 19:43:17 2020 +0100 +++ b/src/java.base/unix/native/libnio/ch/Net.c Fri Mar 20 19:41:27 2020 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2020, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -581,6 +581,13 @@ } n = setsockopt(fdval(env,fdo), IPPROTO_IP, opt, optval, optlen); +#ifdef __APPLE__ + // workaround macOS bug where IP_ADD_MEMBERSHIP fails intermittently + if (n < 0 && errno == ENOMEM) { + n = setsockopt(fdval(env,fdo), IPPROTO_IP, opt, optval, optlen); + } +#endif + if (n < 0) { if (join && (errno == ENOPROTOOPT || errno == EOPNOTSUPP)) return IOS_UNAVAILABLE; @@ -651,6 +658,13 @@ } n = setsockopt(fdval(env,fdo), IPPROTO_IPV6, opt, optval, optlen); +#ifdef __APPLE__ + // workaround macOS bug where IPV6_ADD_MEMBERSHIP fails intermittently + if (n < 0 && errno == ENOMEM) { + n = setsockopt(fdval(env,fdo), IPPROTO_IPV6, opt, optval, optlen); + } +#endif + if (n < 0) { if (join && (errno == ENOPROTOOPT || errno == EOPNOTSUPP)) return IOS_UNAVAILABLE;