RFR: 6968351: httpserver clashes with delayed TCP ACKs for low Content-Length [v17]
Jaikiran Pai
jpai at openjdk.org
Thu Apr 25 12:33:31 UTC 2024
On Tue, 23 Apr 2024 19:10:48 GMT, robert engels <duke at openjdk.org> wrote:
>> fix bug JDK-B6968351 by avoiding flush after response headers
>
> robert engels has updated the pull request incrementally with one additional commit since the last revision:
>
> fix broken test cases
test/jdk/com/sun/net/httpserver/bugs/TcpNoDelayNotRequired.java line 60:
> 58: InetAddress loopback = InetAddress.getLoopbackAddress();
> 59: InetSocketAddress addr = new InetSocketAddress (loopback, 0);
> 60: HttpServer server = HttpServer.create (addr, 0);
Given the change we are doing, I think it would be good to even include a test (within this same test class) which tests the `HttpsServer`.
test/jdk/com/sun/net/httpserver/bugs/TcpNoDelayNotRequired.java line 74:
> 72: var uri = URIBuilder.newBuilder().scheme("http").loopback().port(server.getAddress().getPort()).path("/test").build();
> 73: var response = client.send(HttpRequest.newBuilder(uri).build(), HttpResponse.BodyHandlers.ofString());
> 74: if(!response.body().equals("hello")) throw new IllegalStateException("incorrect body");
It helps during debugging if the response body which failed the checked would either be logged or included as part of the exception that's being thrown. Perhaps:
throw new IllegalStateException("unexpected response body: " + response.body());
test/jdk/com/sun/net/httpserver/bugs/TcpNoDelayNotRequired.java line 79:
> 77: var uri = URIBuilder.newBuilder().scheme("http").loopback().port(server.getAddress().getPort()).path("/chunked").build();
> 78: var response = client.send(HttpRequest.newBuilder(uri).build(), HttpResponse.BodyHandlers.ofString());
> 79: if(!response.body().equals("hello")) throw new IllegalStateException("incorrect body");
Same applies here, it would be better to include the failing response body in the exception message.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/18667#discussion_r1579386619
PR Review Comment: https://git.openjdk.org/jdk/pull/18667#discussion_r1579389263
PR Review Comment: https://git.openjdk.org/jdk/pull/18667#discussion_r1579390252
More information about the net-dev
mailing list