Kyle Porter created ARROW-10441:
-----------------------------------

             Summary: Multiple FlightClients on a single channel can be closed 
accidentally
                 Key: ARROW-10441
                 URL: https://issues.apache.org/jira/browse/ARROW-10441
             Project: Apache Arrow
          Issue Type: Bug
          Components: Java
    Affects Versions: 2.0.0
            Reporter: Kyle Porter
             Fix For: 2.0.1


It seems there may be a mistake in the Java FlightClient where it's possible to 
create multiple FlightClients from a single ManagedChannel.

 

See 
[https://github.com/apache/arrow/blob/master/java/flight/flight-grpc/src/main/java/org/apache/arrow/flight/FlightGrpcUtils.java#L55]
 which lets you specify the channel. However, if you do create multiple 
FlightClients from a single channel, then calling close() 
(https://github.com/apache/arrow/blob/master/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightClient.java#L503)
 on a single FlightClient will close the channel for all of the FlightClients 
that share that channel, which seems incorrect.

 

It's possible that the FlightGrpcUtils was intended only for testing purposes 
and this should never happen in practice. A few possible options would be to:
 * This behaviour is intended, no action.
 * Track if a channel is used by multiple clients and only close on the last 
client to close.
 * Disallow creation of a FlightClient with a specified ManagedChannel.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to