Replies: 1 comment
-
|
I wonder if this could what this fix in Created an issue to upgrade |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello! 👋
I have an Envoy deployment (managed via Envoy Gateway) and a Go HTTP server configured with H2C, and it seems Linkerd proxy does not create new connections when it reaches the server's max concurrent streams limit (250 by default)1. Looking at the goroutines running:
Without the proxy, we can see that as many streams as needed are opened:
I would expect Linkerd proxy to behave the same as Envoy2:
It seems that in some cases, it can lead to the service being completely unavailable, where the client has reset all the streams and is gone, but with all the pending streams and the ones opened "busy", these resets are never passed to the server, until the connection is closed (e.g. when restarting Envoy). (maybe some kind of HOL blocking?)
(I have observed the same from a Go client using H2C to the Go server)
Have I missed a configuration? Is this behavior expected?
Linkerd version:
edge-25.9.3Footnotes
https://github.com/golang/go/blob/go1.25.4/src/net/http/h2_bundle.go#L4007 ↩
https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/connection_pooling#http-2 ↩
Beta Was this translation helpful? Give feedback.
All reactions