[jdk17u-dev] Integrated: 8312065: Socket.connect does not timeout when profiling

Long Yang duke at openjdk.org
Fri Sep 15 15:07:04 UTC 2023


On Fri, 4 Aug 2023 03:02:00 GMT, Long Yang <duke at openjdk.org> wrote:

> Hi all,
> 
> This pull request contains a fix for [JDK-8312065](https://bugs.openjdk.org/browse/JDK-8312065).
> 
> The old SocketImpl is still present in JDK 17, can be enabled with -Djdk.net.usePlainSocketImpl.
> 
> I have verified that this problem exists on Linux and macOS, and I feel that it also exists on AIX, 
> so I repaired these 3 platforms. Windows implementations are different, so don't have this problem.
> 
> All callers of NET_Poll() already check for EINTR, so the fix is to remove do-while loop in the implementation of NET_Poll().
> 
> Other methods, such as NET_Read, NET_NonBlockingRead, NET_Accept, NET_Connect, are not affected.
> Because if Socket has timeout, it will call NET_Timeout first, and then call them. NET_Timeout has a correct timeout implementation and is not affected by profiling signals.
> If the Socket does not have a timeout, and if the system call is interrupted by a signal, the [Linux Kernel will automatically retry](https://man7.org/linux/man-pages/man7/signal.7.html), and the application code will not be aware of it.
> 
> Thanks!

This pull request has now been integrated.

Changeset: 1ce12c4f
Author:    Long Yang <yanglongplus at hotmail.com>
Committer: Paul Hohensee <phh at openjdk.org>
URL:       https://git.openjdk.org/jdk17u-dev/commit/1ce12c4f33d3d6905703d95df2574f4037dfd57d
Stats:     162 lines in 4 files changed: 88 ins; 0 del; 74 mod

8312065: Socket.connect does not timeout when profiling

Reviewed-by: phh, vtewari, apangin

-------------

PR: https://git.openjdk.org/jdk17u-dev/pull/1639


More information about the jdk-updates-dev mailing list