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