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