[ 
https://issues.apache.org/jira/browse/FLINK-7974?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16247484#comment-16247484
 ] 

ASF GitHub Bot commented on FLINK-7974:
---------------------------------------

Github user tillrohrmann commented on a diff in the pull request:

    https://github.com/apache/flink/pull/4993#discussion_r150231729
  
    --- Diff: 
flink-queryable-state/flink-queryable-state-client-java/src/main/java/org/apache/flink/queryablestate/network/AbstractServerBase.java
 ---
    @@ -260,25 +262,47 @@ private boolean attemptToBind(final int port) throws 
Throwable {
        /**
         * Shuts down the server and all related thread pools.
         */
    -   public void shutdown() {
    -           LOG.info("Shutting down server {} @ {}", serverName, 
serverAddress);
    -
    -           if (handler != null) {
    -                   handler.shutdown();
    -                   handler = null;
    -           }
    -
    -           if (queryExecutor != null) {
    -                   queryExecutor.shutdown();
    -           }
    +   public CompletableFuture<?> shutdownServer(Time timeout) throws 
InterruptedException {
    +           log.info("Shutting down {} @ {}", serverName, serverAddress);
    +
    +           final CompletableFuture<Boolean> queryExecShutdownFuture = 
CompletableFuture.supplyAsync(() -> {
    +                           try {
    +                                   if (queryExecutor != null && 
!queryExecutor.isShutdown()) {
    +                                           queryExecutor.shutdown();
    +                                           
queryExecutor.awaitTermination(timeout.toMilliseconds(), TimeUnit.MILLISECONDS);
    --- End diff --
    
    What if `awaitTermination` returns `false`? Then we should call 
`queryExecutor.shutdownNow`


> AbstractServerBase#shutdown does not wait for shutdown completion
> -----------------------------------------------------------------
>
>                 Key: FLINK-7974
>                 URL: https://issues.apache.org/jira/browse/FLINK-7974
>             Project: Flink
>          Issue Type: Bug
>          Components: Queryable State
>    Affects Versions: 1.4.0
>            Reporter: Till Rohrmann
>            Assignee: Kostas Kloudas
>            Priority: Critical
>
> The {{AbstractServerBase}} does not wait for the completion of its shutdown 
> when calling {{AbstractServerBase#shutdown}}. This is problematic since it 
> leads to resource leaks and instable tests such as the 
> {{AbstractServerTest}}. I propose to let the {{AbstractServerBase#shutdown}} 
> return a termination future which is completed upon shutdown completion.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to