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)