On Mon, 16 Jun 2025 09:44:13 GMT, Jaikiran Pai <j...@openjdk.org> wrote:
>> Can I please get a review of this change which proposes to enhance the >> implementation of `ServerSocket` and `ServerSocketChannel` to allow for >> `backlog` values to be greater than 200 on Windows? This addresses >> https://bugs.openjdk.org/browse/JDK-8330940. >> >> As noted in that enhancement request, right now on Windows, if the backlog >> is specified to be more than 200, then Windows caps it to a platform >> internal `SOMAXCONN`. As noted in the documentation here >> https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-listen >> applications can increase that limit by using the `SOMAXCONN_HINT` macro. >> That macro then adjusts the value to be between 200 and 65535, thus allowing >> for a higher backlog of connections. >> >> The commit in this PR uses this macro when the specified backlog is 200 or >> more. A new jtreg test has been introduced to verify this change. This test >> and other existing tests in tier1, tier2 and tier3 continue to pass. >> >> A similar restriction on the backlog value applies in Linux too >> https://github.com/torvalds/linux/blob/master/Documentation/networking/ip-sysctl.rst#tcp-variables. >> But from what I can see, unlike Windows, it cannot be adjusted when calling >> `listen()`. > > Jaikiran Pai has updated the pull request incrementally with four additional > commits since the last revision: > > - include a test for AsynchronousServerSocketChannel > - System.err instead of System.out > - trim down code comment > - > 200 instead of >= 200 test/jdk/java/net/ServerSocket/LargeBacklogTest.java line 96: > 94: // do not attempt any more connections > 95: break; > 96: } hmm... interesting: so we don't need to leave the socket open to increase the backlog. I guess the server side has to accept the socket and read the FIN, so the backlog won't be decremented until the socket is accepted (even if it's already closed on the client side). ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/25819#discussion_r2149696163