[ https://issues.apache.org/jira/browse/FLINK-7974?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16247476#comment-16247476 ]
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_r150228000 --- Diff: flink-queryable-state/flink-queryable-state-client-java/src/main/java/org/apache/flink/queryablestate/network/Client.java --- @@ -309,31 +323,38 @@ private void handInChannel(Channel channel) { /** * Close the connecting channel with a ClosedChannelException. */ - private void close() { - close(new ClosedChannelException()); + private CompletableFuture<?> close() { + return close(new ClosedChannelException()); } /** * Close the connecting channel with an Exception (can be {@code null}) * or forward to the established channel. */ - private void close(Throwable cause) { + private CompletableFuture<?> close(Throwable cause) { synchronized (connectLock) { - if (!closed) { + final CompletableFuture<?> shutdownFuture; + if (closed) { + shutdownFuture = new CompletableFuture<>(); + shutdownFuture.complete(null); + } else { if (failureCause == null) { failureCause = cause; } if (established != null) { - established.close(); + shutdownFuture = established.close(); } else { PendingRequest pending; while ((pending = queuedRequests.poll()) != null) { pending.completeExceptionally(cause); } + shutdownFuture = new CompletableFuture<>(); + shutdownFuture.complete(null); } - closed = true; + shutdownFuture.thenRun(() -> closed = true); --- End diff -- Why do we set `closed` to true` only after the shutdown completed? Shouldn't `close` directly set it to true such that all preceding operations won't be executed anymore? > 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)