[
https://issues.apache.org/jira/browse/FLINK-7974?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16247474#comment-16247474
]
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_r150226661
--- Diff:
flink-queryable-state/flink-queryable-state-client-java/src/main/java/org/apache/flink/queryablestate/network/Client.java
---
@@ -166,27 +168,39 @@ public String getClientName() {
*
* <p>After a call to this method, all returned futures will be failed.
*/
- public void shutdown() {
+ public CompletableFuture<Boolean> shutdown() {
+ final CompletableFuture<Boolean> shutdownFuture = new
CompletableFuture<>();
+
if (shutDown.compareAndSet(false, true)) {
+ final List<CompletableFuture<?>> connectionFutures =
new ArrayList<>();
for (Map.Entry<InetSocketAddress,
EstablishedConnection> conn : establishedConnections.entrySet()) {
if
(establishedConnections.remove(conn.getKey(), conn.getValue())) {
- conn.getValue().close();
+
connectionFutures.add(conn.getValue().close());
}
}
for (Map.Entry<InetSocketAddress, PendingConnection>
conn : pendingConnections.entrySet()) {
if (pendingConnections.remove(conn.getKey()) !=
null) {
- conn.getValue().close();
+
connectionFutures.add(conn.getValue().close());
}
}
- if (bootstrap != null) {
- EventLoopGroup group = bootstrap.group();
- if (group != null) {
- group.shutdownGracefully(0L, 10L,
TimeUnit.SECONDS);
- }
- }
+ CompletableFuture.allOf(connectionFutures.toArray(new
CompletableFuture<?>[connectionFutures.size()])).thenRun(
+ () -> {
+ if (bootstrap != null) {
+ EventLoopGroup group =
bootstrap.group();
+ if (group != null) {
+
group.shutdownGracefully(0L, 10L, TimeUnit.SECONDS)
--- End diff --
why not setting the timeout to `0`?
> 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)