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