-
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
Issue #10956 - Send Reset NO_ERROR for HTTP/2 #11029
Conversation
Removed duplicate handling from servlet. Now only handled in core on first demand. Added additional tests.
added the willRead method to HttpStream and Request to allow signal that a read will be attempted.
…/110956/Reset_NO_ERROR
if (expects100Continue) | ||
{ | ||
expects100Continue = false; | ||
send(requestMetaData, HttpGenerator.CONTINUE_100_INFO, false, null, Callback.NOOP); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Now this makes me wonder if this isn't racing with a user-generated write? I mean such handler:
boolean handle(Request req, Response resp, Callback callback)
{
req.demand(() -> {}); // this triggers a write with a NOOP callback
resp.write(true, BufferUtil.EMPTY, callback); // doesn't this risk a WritePendingException?
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was thinking the same.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
jetty-core/jetty-server/src/main/java/org/eclipse/jetty/server/Request.java
Outdated
Show resolved
Hide resolved
jetty-core/jetty-server/src/main/java/org/eclipse/jetty/server/HttpStream.java
Outdated
Show resolved
Hide resolved
...ports/src/test/java/org/eclipse/jetty/ee10/test/client/transport/HttpClientContinueTest.java
Outdated
Show resolved
Hide resolved
...ports/src/test/java/org/eclipse/jetty/ee10/test/client/transport/HttpClientContinueTest.java
Show resolved
Hide resolved
...ports/src/test/java/org/eclipse/jetty/ee10/test/client/transport/HttpClientContinueTest.java
Outdated
Show resolved
Hide resolved
@sbordet @lorban can you just review the parts of this that are extra to #10957 @sbordet I've made changes to the h2 server side to do the reset(NO_ERROR), but I've not yet changed the client side to handle it. Not exactly sure what we should do there (if anything). Need to chat. @lorban can you look at duplicating the h2 changes in h3 once we agree they are correct. |
Moved all 100 continues handling into HttpChannelState and protected it from concurrent writes
…/110956/Reset_NO_ERROR # Conflicts: # jetty-core/jetty-http2/jetty-http2-server/src/main/java/org/eclipse/jetty/http2/server/internal/HttpStreamOverHTTP2.java
there is a better way. |
For #10956