-
-
Notifications
You must be signed in to change notification settings - Fork 277
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
Client receives unexpected end of file
randomly
#636
Comments
I assume the UnexpectedEof you encountered is on a server. This should be fixed by #743.
From the log you posted, it seems the server never got an |
It's not outgoing responses from a server that have this issue if that's what you mean. It's running on a server but is normal outgoing rpcs to various other services and is not responses to incoming requests. |
Thanks for the clarification. #743 won't fix this if this is the case. I suspect it's a similar issue tho -- the connection is just closed by upstream servers without Would you happen to have a simplified version of the tonic/go server to reproduce this issue? |
not at the moment, we are trying to eliminate any other potential layer on top of hyper/tonic as causing problems (unlikely though). Those logs linked in the issue is the best we got for now |
I'm experiencing the same error when connecting to Google API from rust using tonic. I haven't found specific conditions for that and have not created a minimal example but just wanted to say that I would also be grateful if you will be able to post your findings |
I have been investigating an issue on one of our servcies where a tonic client seemingly at random errors out on
client response error: unexpected end of file"
. Both to outgoing traffic to a grpc servcie written in go as well as to another tonic server. Other services communicating to the same services does not seem to run into the same problem.I'm not super familiar with the grpc implementation details on top of h2 so I'm bit stuck staring at the logs. From what I can tell the client stream is waiting for headers from the remote and eventually the client sends an frame
END_STREAM
which afaik should close the stream and that'd be the end of it.However right after flushing the buffer I see a log mentioning
connect.state = Open
and a framed read which polls the connection. That poll is what eventually results in theUnexpectedEof
. I'm a bit confused why it would set the connection state to open after seemingly closing the stream? Perhaps the logs are for two separate streams and the open one is another one just opening up?Here is a snippet of the tracing logs starting from the error, let me know if you need more of them. It's tricky to exactly pin point the relevant info since this is grabbed from a server (but with very little load):
Logs
The text was updated successfully, but these errors were encountered: