-
-
Notifications
You must be signed in to change notification settings - Fork 15.8k
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
no WINDOW_UPDATE sent due to uncaught error in promise #9663
Comments
@carl-mastrangelo @bryce-anderson can you have a look ? |
…multiplexed channel Motivation: We may fail to update the flow-controller and in this case need to notify the stream channel and close it. Modifications: Attach a future to the write of the update frame and in case of a failure propagate it to the channel and close it Result: Fixes #9663
@normanmaurer I do agree that closing the channel is the correct response to this exception. However, the larger issue is that we see this exception thrown many times per connection, even for requests that succeed. It seems like there's something wrong with how the flow control windows tracked in DefaultHttp2LocalFlowController and AbstractHttp2StreamChannel are calculated. Specifically, AbstractHttp2StreamChannel's |
I will try to investigate but I am not sure when exactly I will have the time yet :( |
@rhernandez35 @ti2ger92 funny enough my PR did have the side-effect of what seems to be the same issue you reported here:
Does this sound right ? Will dig into it :) |
That looks about right to me, yes. I appreciate that. |
@normanmaurer Speaking for @ti2ger92, commit d42aa46 from the |
@normanmaurer I've run the tests many times with the current code, everything is working great. |
As I commented on the CR its self, my tests also show this solves the problem. |
Expected behavior
Server sends a WINDOW_UPDATE after the window is completed.
Actual behavior
Server throws exceptions from:
netty/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2LocalFlowController.java
Line 431 in 4c64c98
Steps to reproduce
Run the test class in this gradle project.
Minimal yet complete reproducer code (or URL to code)
https://gist.github.com/ti2ger92/18c9c4439192d7e88996dbe928e3c300
Netty version
4.1.42
JVM version (e.g.
java -version
)1.8.0_202, x86_64: "AdoptOpenJDK 8"
OS version (e.g.
uname -a
)Darwin f01898596f5f.ant.amazon.com 17.7.0 Darwin Kernel Version 17.7.0: Sun Jun 2 20:31:42 PDT 2019; root:xnu-4570.71.46~1/RELEASE_X86_64 x86_64
The text was updated successfully, but these errors were encountered: