[jdk21u-dev] RFR: 8335181: Incorrect handling of HTTP/2 GOAWAY frames in HttpClient

Ryan Flegel duke at openjdk.org
Tue Oct 15 16:02:18 UTC 2024


On Thu, 3 Oct 2024 20:06:12 GMT, Ryan Flegel <duke at openjdk.org> wrote:

> I am backporting this fix because I am being affected by [JDK-8335181](https://bugs.openjdk.org/browse/JDK-8335181). I had to downgrade to HTTP/1.1 in order to use `HttpClient`.
> 
> I needed to resolve two minor conflicts in `MultiExchange.java` due to [JDK-8191494](https://bugs.openjdk.org/browse/JDK-8191494) being applied slightly differently in different projects. In both cases, I kept the change closer to upstream.
> 
> The conflicts were:
> * Explicit vs implicit null field initialization
> * Different debug log message
> 
> ### Tests
> 
> All tests in the GitHub actions have passed.
> 
> I have run the `jdk/java/net` tests locally and there were several failures, including 4 within `java/net/httpclient`. However, I have confirmed that all the failed tests also fail before applying the patch, so they seem to be unrelated.
> 
> Here is a full list of the failures:
> 
> * java/net/DatagramSocket/B6411513.java: java.net.DatagramSocket.receive: packet isn't received
> * java/net/DatagramSocket/SendReceiveMaxSize.java: This test verifies that on macOS, the send buffer size is configured by default so that none of our implementations of the UDP protocol will fail with a "packet too large" exception when trying to send a packet of the maximum possible size allowed by the protocol.
> * java/net/httpclient/ConnectTimeoutNoProxyAsync.java: Tests for connection related timeouts
> * java/net/httpclient/ConnectTimeoutNoProxySync.java: Tests for connection related timeouts
> * java/net/httpclient/ConnectTimeoutWithProxyAsync.java: Tests for connection related timeouts
> * java/net/httpclient/ConnectTimeoutWithProxySync.java: Tests for connection related timeouts
> 
> UPDATE: I've run the rest of the tier2 tests and there were two additional JDK failures that appear to be unrelated:
> 
> * com/sun/jndi/dns/ConfigTests/Timeout.java: Tests that we can set the initial UDP timeout interval and the number of retries.
> * com/sun/jndi/ldap/LdapPoolTimeoutTest.java: Multi-threaded client timeout tests for ldap pool

Testing is complete for this PR and it is ready for review. Is there someone that can take a look?

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

PR Comment: https://git.openjdk.org/jdk21u-dev/pull/1020#issuecomment-2414422931


More information about the jdk-updates-dev mailing list