On Wed, 10 Dec 2025 15:29:51 GMT, Michael McMahon <[email protected]> wrote:
> Hi, > > This change updates the use of NET_ThrowNew in Inet4AddressImpl.c + > Inet6AddressImpl.c (unix). > Currently EINTR is incorrectly handled in NET_ThrowNew to throw > InterruptedIOException. > > The only possible places in these files where EINTR can be returned is in the > sendto() calls > for ping4() and ping6() used by the InetAddress.isReachable() API. > > The change checks for EINTR returned from those calls and restarts the > sendto() > if the timeout allows it. If EINTR is detected by NET_ThrowNew it is thrown > as an ordinary > SocketException, but this should not happen. > > The fix is only partially tested as it is difficult to make sendto() return > EINTR in practice, but > I added a unit test for the new native function that checks if the timeout > has expired. > > Thanks, > Michael This pull request has now been integrated. Changeset: 4924b29f Author: Michael McMahon <[email protected]> URL: https://git.openjdk.org/jdk/commit/4924b29fa519996b806ac0f4a7c898085f44bc4c Stats: 66 lines in 5 files changed: 33 ins; 4 del; 29 mod 8370655: Check EINTR handling InetAddress implementation and NET_ThrowNew Reviewed-by: alanb ------------- PR: https://git.openjdk.org/jdk/pull/28750
