[jdk21u-dev] RFR: 8335181: Incorrect handling of HTTP/2 GOAWAY frames in HttpClient [v3]
Ryan Flegel
duke at openjdk.org
Mon Oct 21 14:28:29 UTC 2024
> 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
Ryan Flegel has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains three commits:
- Merge branch 'master' of https://git.openjdk.org/jdk21u-dev into backport-720b44648b
- Merge remote-tracking branch 'origin/master' into backport-720b44648b
- Backport 720b44648bcff997278af92746f942b2425298a5
-------------
Changes: https://git.openjdk.org/jdk21u-dev/pull/1020/files
Webrev: https://webrevs.openjdk.org/?repo=jdk21u-dev&pr=1020&range=02
Stats: 627 lines in 12 files changed: 571 ins; 2 del; 54 mod
Patch: https://git.openjdk.org/jdk21u-dev/pull/1020.diff
Fetch: git fetch https://git.openjdk.org/jdk21u-dev.git pull/1020/head:pull/1020
PR: https://git.openjdk.org/jdk21u-dev/pull/1020
More information about the jdk-updates-dev
mailing list