Integrated: 8285515: (dc) DatagramChannel.disconnect fails with "Invalid argument" on macOS 12.4 beta2
Jaikiran Pai
jpai at openjdk.java.net
Fri Apr 29 09:19:43 UTC 2022
On Thu, 28 Apr 2022 09:37:17 GMT, Jaikiran Pai <jpai at openjdk.org> wrote:
> Can I please get a review of this change with proposes to address the issue reported in https://bugs.openjdk.java.net/browse/JDK-8285515?
>
> We have noticed that in the latest 12.4 Beta2 version of MacOSX, the implementation of `DatagramChannelImpl.disconnect` fails with an unexpected error.
>
> Internally, the disconnect is implemented as a call to `connect` by passing it a "null" address as suggested in the documentation of `man connect`. In previous versions of MacOSX, this call used to return a `EADDRNOTAVAIL` errno and at the same time would correctly dissolve the connected association. The `EADDRNOTAVAIL` was then caught and intentionally ignored by the code in the JNI layer in `DatagramChannelImpl.disconnect0`.
>
> In MacOSX 12.4 Beta 2 we are now seeing this `connect` call return `EINVAL`. This change in behaviour is noticed only for IPv4-mapped IPv6 addresses.
>
> The `man connect` documentation on MacOSX states that even `disconnectx` can be used to disconnect datagram sockets. The commit here does that change to use `disconnectx` for MacOSX. Tests have been successfully run on some older Mac setups to make sure this change passes there as well.
>
> Currently `tier1`, `tier2` and `tier3` run is in progress across various OS.
>
> No additional tests have been added for this change since the many existing (failing) tests already cover this use case.
This pull request has now been integrated.
Changeset: 269eae61
Author: Jaikiran Pai <jpai at openjdk.org>
URL: https://git.openjdk.java.net/jdk/commit/269eae61894b6bd0a7512045a369b53df747f6e5
Stats: 27 lines in 2 files changed: 16 ins; 8 del; 3 mod
8285515: (dc) DatagramChannel.disconnect fails with "Invalid argument" on macOS 12.4 beta2
Reviewed-by: dfuchs, alanb
-------------
PR: https://git.openjdk.java.net/jdk/pull/8445
More information about the nio-dev
mailing list