runtime: HTTP2: Hang when sending multiple requests from a HttpClient
I’m not sure what the cause of this hang is, it appears to happen at HttpClient.SendAsync when the client has made at least one previous call.
Repro:
git clone https://github.com/JamesNK/grpc-dotnet.git
git checkout jamesnk/hang-multiple-calls
dotnet test test\FunctionalTests --filter Name~DuplexStream_SendToUnimplementedMethodAfterResponseReceived_Hang
Logic in the test is like:
- Client makes HTTP/2 duplex call to the server
- Server immediately returns 200 and ends request.
- Client inspects headers.
- Client completes request stream.
- Go to 1.
It consistently hangs making the second or third call.
.NET Core SDK (reflecting any global.json):
Version: 3.0.100-preview8-013248
Commit: 135af55c46
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Comments: 29 (29 by maintainers)
Perhaps we should have an issue specifically for the second HttpClient issue (re RST_STREAM with NO_ERROR). That makes for a better historical record here of what was actually fixed.
The release/3.0 branch is locked until at least Monday/Tuesday next week. So, if you need @stephentoub to review changes on that PR then that’s fine.