-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
Support IDLE_TIMEOUT (client-side) #1719
Comments
Note that this needs a solution to #1786 which is about supporting idleness in general. |
Looks like I have to add a timer to implement client_idle_timeout by myself. Does the server side idle timeout achieve the same results by sending a GOAWAY? |
@beef9999, I don't think C++ has implemented this. I think Java is the only language to have this implemented. Server-side idle timeout is a bit different, simply because different clients may need different settings and server-side doesn't achieve that. Also, with multiple LB policies (and all the time in grpc-go), when the client receives a GOAWAY it just reconnects. |
Fixed by #6263 |
IDLE_TIMEOUT is defined as a way for clients to drop unused connections after inactivity.
I could not find an API for this in Go. Java has had support since 1.0. Note that in Java, when the IDLE_TIMEOUT is reached, the NameResolver and LB are shutdown, returning the Channel to the same state as initially created. This does cause a nomenclature problem, because there are two levels of IDLEness; we've been calling the shutting down of all IO (NR and LB) "idle mode."
The server-side equivalent is MAX_CONNECTION_IDLE. But both are necessary.
C doesn't support this either (grpc/grpc#13212). It's likely more important for C as it can be very useful on mobile. But it is commonly a better alternative to KEEPALIVE_WITHOUT_CALLS and, since KEEPALIVE_WITHOUT_CALLS is not necessarily permitted, can be necessary.
The text was updated successfully, but these errors were encountered: