-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
[HTTP/3] Hang when reading response data #57888
Comments
Tagging subscribers to this area: @dotnet/ncl Issue DetailsScenario:
If the client completes the request before reading the second response then it works. (swap the final two steps) Failure logs:
The client appears to receive the second message's data frame and then hang.
|
Server streaming repo logs:
|
Triage: We should look at it and understand. This may be needed for 6.0. |
Reopening to track 6.0 backport. This breaks gRPC streaming - it hangs. |
@karelz FYI, gRPC isn't impacted by this bug because gRPC knows exactly how much to read from the response. However, I think this bug could be common for non-gRPC usage:
All the requirements to get this bug are common activities. I think that a lot of people will run into this issue. |
Thanks @JamesNK. Based on team discussion, we think we should take it to 6.0 as the conditions for hitting the hang are fairly common in real-world usage. |
Edit: Initially I thought this issue was caused by bidirecitonal streaming, but I've recreated it when just streaming data from the server.
I think the issue is similar to #56115, the read buffer is bigger than the available data. The difference in the new hang is the client calls
responseStream.ReadAsync
with a large buffer before the data is available.Scenario:
Test: https://github.com/grpc/grpc-dotnet/blob/9f72e70c6a47ae823bb3ddcc719f1c63bf721fc7/test/FunctionalTests/Server/DuplexStreamingMethodTests.cs#L37
If the client completes the request before reading the second response then it works.
Failure logs:
The end of the logs show the client receiving the second message's data frame and then hanging:
SDK info:
The text was updated successfully, but these errors were encountered: