Skip to content
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

Closed
crystalin opened this issue Oct 9, 2019 · 4 comments
Closed

NodeJs 12.11.1 NGHTTP2_ENHANCE_YOUR_CALM #29907

crystalin opened this issue Oct 9, 2019 · 4 comments
Labels
http2 Issues or PRs related to the http2 subsystem.

Comments

@crystalin
Copy link

crystalin commented Oct 9, 2019

  • Version: 12.11.1
  • Platform: Docker 12.11-alpine (on Ubuntu)

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.

@crystalin
Copy link
Author

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

@bnoordhuis
Copy link
Member

Related (or identical) to #29223 by any chance?

@bnoordhuis bnoordhuis added http2 Issues or PRs related to the http2 subsystem. v12.x labels Oct 9, 2019
@crystalin
Copy link
Author

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

@lundibundi
Copy link
Member

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?
Closing for now as this is very similar to the other reported errors related to NGHTTP2_ENHANCE_YOUR_CALM, feel free to reopen.

Should be fixed in all release lines since 13.3.0, 12.14.1 and 10.18.1 via #30684.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
http2 Issues or PRs related to the http2 subsystem.
Projects
None yet
Development

No branches or pull requests

3 participants