On Wed, 11 Jun 2025 12:38:43 GMT, Alan Bateman <al...@openjdk.org> wrote:
>> I think it is an unnecessary quantification, is somewhat inaccurate, and set >> an expectation of a developer that this is gospel or axiomatic. Indicating >> that it is OS dependent should be sufficient. > >> Alan @AlanBateman, do you suggest we continue with this text or would any >> update be necessary? > > I think it's helpful here to give some indication in this API note as what > the timeout might be. It doesn't really matter if it says 60s or 75s, the > point is that establishing a TCP connection is subject to a timeout imposed > by the operating system. It helps for cases where someone calls connect with > a timeout of say 300_000 (5 minutes) and is surprised to get ConnectException > "Operation timed out" after a minute or so. This is exactly what prompted > JDK-7116990, someone called connect with a timeout that is larger than the OS > configured timeout. Looking at this on the 3 main OS platforms (Windows, OL and macOS) and running a simple test to trigger a connect timeout then finding are macOS the connect timeout is 75 seconds as this is derived from 4.3 BSD If OL linux has a syn retries set to 6 and an RTO == 1 sec then it’s connect timeout is 130 seconds approx That’s initial syn timeout of 1 seconds and then 6 retries totalling 127 seconds Windows by default connect is 21 seconds RTT == 3 seconds and two connect retries Initial syn timeout 3 seconds + 2 retries at 6 and 12 seconds == 21 seconds ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/25690#discussion_r2141133716