-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix for some invalid server behaviors when a client is aborting a request #11637
Merged
joakime
merged 11 commits into
jetty-12.0.x
from
fix/jetty-12.0.x/11631-fix-npe-infinite-loop
Apr 23, 2024
Merged
Fix for some invalid server behaviors when a client is aborting a request #11637
joakime
merged 11 commits into
jetty-12.0.x
from
fix/jetty-12.0.x/11631-fix-npe-infinite-loop
Apr 23, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…) throws an exception Signed-off-by: Ludovic Orban <[email protected]>
Signed-off-by: Ludovic Orban <[email protected]>
Signed-off-by: Ludovic Orban <[email protected]>
…0.x/11631-fix-npe-infinite-loop
I could not find the cause of the
I've committed fixes for those. |
Signed-off-by: Ludovic Orban <[email protected]>
Signed-off-by: Ludovic Orban <[email protected]>
sbordet
requested changes
Apr 16, 2024
...transports/src/test/java/org/eclipse/jetty/ee10/test/client/transport/RequestReaderTest.java
Outdated
Show resolved
Hide resolved
...transports/src/test/java/org/eclipse/jetty/ee10/test/client/transport/RequestReaderTest.java
Outdated
Show resolved
Hide resolved
...transports/src/test/java/org/eclipse/jetty/ee10/test/client/transport/RequestReaderTest.java
Outdated
Show resolved
Hide resolved
...transports/src/test/java/org/eclipse/jetty/ee10/test/client/transport/RequestReaderTest.java
Outdated
Show resolved
Hide resolved
...transports/src/test/java/org/eclipse/jetty/ee10/test/client/transport/RequestReaderTest.java
Outdated
Show resolved
Hide resolved
...transports/src/test/java/org/eclipse/jetty/ee10/test/client/transport/RequestReaderTest.java
Outdated
Show resolved
Hide resolved
…0.x/11631-fix-npe-infinite-loop
Signed-off-by: Ludovic Orban <[email protected]>
gregw
reviewed
Apr 18, 2024
jetty-core/jetty-server/src/main/java/org/eclipse/jetty/server/internal/HttpChannelState.java
Show resolved
Hide resolved
Signed-off-by: Ludovic Orban <[email protected]>
Signed-off-by: Ludovic Orban <[email protected]>
Signed-off-by: Ludovic Orban <[email protected]>
sbordet
approved these changes
Apr 19, 2024
gregw
approved these changes
Apr 22, 2024
lorban
added
the
Sponsored
This issue affects a user with a commercial support agreement
label
Apr 23, 2024
lorban
changed the title
Mitigate infinite loop when
Fix for some invalid server behaviors when a client is aborting a request
Apr 23, 2024
ServletContextResponse.resetContent()
throws
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix three bugs that were discovered at the same time:
Fix
java.lang.IllegalArgumentException: demand pending
warning log. When a ReadListener is registered on a EE10 ServletInputStream after startAsync() has been called, and the client abruptly closes the connection, the server is left with a pending demand and trying to complete theHttpChannelState
's callback. The latter expects no pending demand otherwiseIllegalArgumentException: demand pending
is thrown. We should fail the callback with the IllegalArgumentException instead of throwing it.Add the necessary wiring so that QUIC can fail its session when a HTTP 3 client aborts. A QUIC reset packet is immediately sent to the server which is supposed to react to it; when the QUIC endpoint has fill interest, this reset is passed to the HTTP 3 layer which does the right thing; but when the endpoint has no fill interest, the reset is incorrectly ignored.
Abort instead of throwing when the exception handler in EE10
ServletChannel.handle()
throws an exception to avoid infinitely looping and adding an infinite amount of suppressed stack traces when the SEND_ERROR action itself throws.See #11631