Open owlwalks opened 4 years ago
grpcurl retries forever
Since I don't see any data or header frames in that trace, so I'm guessing grpcurl is just trying to reconnect. It will reconnect repeatedly, with some exponential backoff in between attempts, for up to 10 seconds (thought that is configurable via the -connect-timeout
parameter). This is expected and is part of how a gRPC client works.
hi @jhump, I just had a quick look: connect-timeout only seems to affect dialing, https://github.com/fullstorydev/grpcurl/blob/5631bba11793e645e00d92882c543904426b098a/cmd/grpcurl/grpcurl.go#L276. In my case grpcurl and server was connected ok, but server wants to end the conn by GOAWAY frame but grpcurl still keeps reconnecting.
In my case grpcurl and server was connected ok
Hmm. That is strange since the Go gRPC client used by grpcurl does not default to "wait for ready" behavior. So it should not retry sending when a transport is unavailable (such as due to it being shutdown by the server with a GOAWAY message) but should instead fail with an "unavailable" error message. I'll look a little more into it.
grpcurl retries forever even after server sends GOAWAY frame
I tried something like this:
from server with
GODEBUG="http2debug=2"
: