-
Notifications
You must be signed in to change notification settings - Fork 29.6k
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
NodeJs 12.11.1 NGHTTP2_ENHANCE_YOUR_CALM #29907
Comments
After more investigation. It is not related to reaching a high amount of concurrent stream. I found traces happening with sessions having only up to 10 concurrent streams |
Related (or identical) to #29223 by any chance? |
I thought it was not related initially, but re-reading it again, it might be the buffer limit is actually limiting. However it was handled correctly in 12.7, so I think it is a regression implement in the recent patches |
The 12.7 doesn't include the commit that supposedly introduced the bug (#29122 which was released in 12.8.1) while 12.11 has it, could you update to the latest v12 and check if the problem still persists? Should be fixed in all release lines since 13.3.0, 12.14.1 and 10.18.1 via #30684. |
This is a regression (or a feature?) compared to 12.7
When performing a consequent amount of request on an http2 connection, using 12.11 I reach this error:
Error [ERR_HTTP2_STREAM_ERROR]: Stream closed with error code NGHTTP2_ENHANCE_YOUR_CALM at ClientHttp2Stream._destroy (internal/http2/core.js:2098:13) at ClientHttp2Stream.destroy (internal/streams/destroy.js:37:8) at ClientHttp2Stream.[kMaybeDestroy] (internal/http2/core.js:2114:12) at Http2Stream.onStreamClose (internal/http2/core.js:491:26)
This doesn't happen on 12.7 under the same condition with the same code.
This happens when the amount of concurrent stream is almost at the limit agreed between the 2 peers (128 in my case).This happens when the amount of request is high but the number of concurrent stream is lower than the limit (~10 concurrent stream, with a limit of 128)
I believe this was handled correctly in 12.7 by keeping the request in the queue, but in 12.11 it seems to push it over the limit and the peer returns the NGHTTP2_ENHANCE_YOUR_CALM error.
The text was updated successfully, but these errors were encountered: