-
Notifications
You must be signed in to change notification settings - Fork 4.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
[8.0] HTTP/2 request to cloud hosted services is aborted by server with ENHANCE_YOUR_CALM #97131
Comments
Tagging subscribers to this area: @dotnet/ncl Issue DetailsDescriptionTwo gRPC users have reported problems with streaming calls make to services hosted by GCP/Google:
The streaming calls end after a small amount of activity with this error:
They're both verified that only the .NET client has this problem. Other gRPC implementations (Rust, go, Python) are successful. Debugging logs shows that the problem is caused by the server aborting the connection because the client is sending too many pings. Logs:
The client sends a ping to the server, and the server responds with a GOAWAY with an error code of ENHANCE_YOUR_CALM. The problem can be worked around by disabling RTT pings: AppContext.SetSwitch("System.Net.SocketsHttpHandler.Http2FlowControl.DisableDynamicWindowSizing", true); Reproduction StepsA customer has created a reproduction - grpc/grpc-dotnet#2361 Expected behaviorHttpClient should be able to successfully call GCP/Google hosted endpoints without the server aborting the connection. Resolving this problem requires low level knowledge of HTTP/2 and client/server interactions. There is no way developers will understand how to solve this problem. Actual behaviorGOAWAY + ENHANCE_YOUR_CALM Regression?No response Known WorkaroundsNo response ConfigurationNo response Other informationNo response
|
Backport will happen after 9.0 GA, moving to Future. |
Description
Two gRPC users have reported problems with streaming calls make to services hosted by GCP/Google:
The streaming calls end after a small amount of activity with this error:
They're both verified that only the .NET client has this problem. Other gRPC implementations (Rust, go, Python) are successful.
Debugging logs shows that the problem is caused by the server aborting the connection because the client is sending too many pings. Logs:
The client sends a ping to the server, and the server responds with a GOAWAY with an error code of ENHANCE_YOUR_CALM.
The problem can be worked around by disabling RTT pings:
Reproduction Steps
A customer has created a reproduction - grpc/grpc-dotnet#2361
Expected behavior
HttpClient should be able to successfully call GCP/Google hosted endpoints without the server aborting the connection.
Resolving this problem requires low level knowledge of HTTP/2 and client/server interactions. There is no way developers will understand how to solve this problem.
Actual behavior
GOAWAY + ENHANCE_YOUR_CALM
Regression?
No response
Known Workarounds
No response
Configuration
No response
Other information
No response
The text was updated successfully, but these errors were encountered: