RFR: 8330940: Impossible to create a socket backlog greater than 200 on Windows 8+ [v2]
Jaikiran Pai
jpai at openjdk.org
Mon Jun 16 09:44:13 UTC 2025
> 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
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/25819/files
- new: https://git.openjdk.org/jdk/pull/25819/files/b5fb869a..eb77b5e3
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=25819&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=25819&range=00-01
Stats: 25 lines in 2 files changed: 14 ins; 4 del; 7 mod
Patch: https://git.openjdk.org/jdk/pull/25819.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/25819/head:pull/25819
PR: https://git.openjdk.org/jdk/pull/25819
More information about the net-dev
mailing list