[ 
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)

Reply via email to