RFR: 8335181: Incorrect handling of HTTP/2 GOAWAY frames in HttpClient [v3]
Jaikiran Pai
jpai at openjdk.org
Tue Aug 6 09:10:13 UTC 2024
> Can I please get a review of this change which fixes the issue noted in https://bugs.openjdk.org/browse/JDK-8335181?
>
> As noted in that issue, the current implementation in the `java.net.http.HttpClient` doesn't correctly handle an incoming GOAWAY frame. The HTTP3 RFC https://www.rfc-editor.org/rfc/rfc9113#name-goaway notes the specifics on what the expectations are when an endpoint receives a GOAWAY frame from the peer.
>
> Before the changes proposed in this PR, the HttpClient implementation would (incorrectly) shutdown the connection and abort requests when a GOAWAY frame was received. The changes in this PR fixes that by retrying relevant unprocessed requests (if any) and not initiating any new streams on the connection.
>
> A new test has been introduced to exercise this detail. The test continues to pass along with other existing tests. tier testing as well as a repeated testing (with test-repeat 50) is currently in progress with this change.
Jaikiran Pai has updated the pull request incrementally with one additional commit since the last revision:
simplify test, handle REFUSED_STREAM on the client side, fix WindowController assertion
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/20442/files
- new: https://git.openjdk.org/jdk/pull/20442/files/54ce899b..b4641f60
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=20442&range=02
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=20442&range=01-02
Stats: 222 lines in 10 files changed: 96 ins; 54 del; 72 mod
Patch: https://git.openjdk.org/jdk/pull/20442.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/20442/head:pull/20442
PR: https://git.openjdk.org/jdk/pull/20442
More information about the net-dev
mailing list