I am running into an issue with the GRPC Java client in which the client 
leaks connections over time.  Reading through the grpc-java code, 
debugging, and instrumenting has led my the following question:

   - Does the netty client code ever close the connection except when it 
   sees the socket close intiaited externally (i.e. by the O/S or the server)?

Here is a small project that (1) contains a description of the problem and 
some of the history related to it, and (2) can be used to reproduce the 
connection leak.

https://github.com/artnaseef/opennms-poc-hs1384

In brief, we see the following:

   - The NGINX ingress times out a request
   - The NGINX ingress sends a GOAWAY packet to the client.
   - The client channel transitions to IDLE but does not close the 
   connection.  
   - The client creates a new connection for the channel, which transitions 
   to CONNECTING and then READY
   - The list of transports for the channel holds the leaked connections

Note that switching to the OK HTTP implementation appears to improve the 
results with the test tool, but our main application still observes leaked 
connections when running with OK HTTP.

Any help is appreciated.  I can certainly share more details as needed.

Art

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/2f64cf71-d692-460d-9360-10724a1f8cccn%40googlegroups.com.

Reply via email to