RFR: 8300268 : ServerImpl allows too many idle connections when using sun.net.httpserver.maxIdleConnections [v3]

Jaikiran Pai jpai at openjdk.org
Wed Feb 8 11:02:53 UTC 2023


On Tue, 7 Feb 2023 15:40:48 GMT, Darragh Clarke <duke at openjdk.org> wrote:

>> Currently there is a race condition that can allow for too many 'idleConnections' in `ServerImpl`
>> 
>> This PR adds a lock to make sure only one connection can be marked Idle at a time as well as a test that consistently failed before the change but which now passes.
>
> Darragh Clarke has updated the pull request incrementally with one additional commit since the last revision:
> 
>   addressed comments

test/jdk/com/sun/net/httpserver/bugs/8300268/MaxIdleConnectionsTest.java line 85:

> 83:         try (final ExecutorService requestIssuer = Executors.newFixedThreadPool(totalConnections)) {
> 84:             for (int i = 1; i <= totalConnections; i++) {
> 85:                 final URL requestURL = new URL("http://" + host + ":" + port + "/MaxIdleConnectionTest/" + i);

I suspect we will have to use the `URIBuilder` from the test utility to take into account IPv6 host addresses which can contain a `:` in the string. In this case we would use it something like:

URL url = URIBuilder.newBuilder()
                    .scheme("http")
                    .loopback()
                    .port(port)
                    .path("/MaxIdleConnectionTest/" + i)
                    .toURL();
....

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

PR: https://git.openjdk.org/jdk/pull/12413


More information about the net-dev mailing list