[
https://issues.apache.org/jira/browse/ARROW-6867?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16950062#comment-16950062
]
David Li edited comment on ARROW-6867 at 10/12/19 3:00 PM:
-----------------------------------------------------------
Aha, the real reason is
1) By default, we share an executor between gRPC and Flight.
2) gRPC doesn't take ownership of the executor, so we need to manually shut it
down on exit.
The safest thing would be to clean up the executor, and document Flight as
owning it.
was (Author: lidavidm):
Aha, the real reason is
1) By default, we share an executor between gRPC and Flight.
2) gRPC doesn't take ownership of the executor, so we need to manually shut it
down on exit.
The safest thing would be to use separate executors, and make sure to clean up
both executors. (This would also avoid potential deadlocks; gRPC can't process
client cancellations if the executor is full.)
> [FlightRPC][Java] Flight server can hang JVM on shutdown
> --------------------------------------------------------
>
> Key: ARROW-6867
> URL: https://issues.apache.org/jira/browse/ARROW-6867
> Project: Apache Arrow
> Issue Type: Bug
> Components: FlightRPC, Java
> Affects Versions: 0.15.0
> Reporter: David Li
> Assignee: David Li
> Priority: Major
> Fix For: 1.0.0
>
>
> I noticed this while working on Flight integration tests. FlightService keeps
> an executor, which can hang the JVM on shutdown if the executor itself is not
> shut down.
> It's used by Handshake and DoPut.
> I think this surfaced because I wrote an AuthHandler that threw an exception.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)