RFR: 7116990: (spec) Socket.connect(addr,timeout) not clear if IOException because of TCP timeout [v3]
Mark Sheppard
msheppar at openjdk.org
Fri Jun 13 09:19:29 UTC 2025
On Fri, 13 Jun 2025 07:08:58 GMT, Jaikiran Pai <jpai at openjdk.org> wrote:
>> FWIW an possible alternative wording
>>
>> Establishing a TCP/IP connection is subject to a connect timeout, determined by configuration settings
>> of the operating system, for example the number of connect retries together with a TCP/IP implementation’s back off strategy. Thus, TCP/IP Connect timeout values can vary across operating system, for example 75 seconds on macOS, with a default value of 21 seconds on Windows system. As such, the operating system TCP/IP Connect timeout may expire before that specified to the connect method. If the operating system Connect timeout expires
>> before the {@code timeout} specified to this method then an {@code IOException} is thrown. The {@code timeout}
>> specified to this method is typically a timeout value that is shorter than the operating system timeout.
>
> Hello Mark, I discussed this with Alan and based on those discussions I have now reworded that sentence to make it clear that 60 second isn't the only typical timeout and at the same time keep the text concise.
Hi JP,
I don't understand why you are persisting with 60 seconds, when the original reporter shows its a default of 21 seconds on Windows, which I have also confirmed and that windows requires TcpMaxConnectRetransmissions to adjusted to enable a higher connect timeout. 21 seconds is a very much not typically 60 seconds
I have given feedback as a developer of the type of detail and wording which I would find useful. The "typically" statement is inaccurate and misleading
Also first sentence need minor refinement changing connection timeout to connect timeout
connection timeout is when the connection is established
Thus should read:
Establishing a TCP/IP connection is subject to connect timeout settings in the operating system.
I think it is important to have some accurate details in this wording, as such documentation is taken a de facto standard and will persist for aeons
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/25690#discussion_r2144570845
More information about the net-dev
mailing list