[FLINK-2473] [core] Add a timeout to akka actorsystem shutdown.

This works around a bug in akka where the "awaitTermination()" call freezes 
indefinitely.


Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/2cff89ed
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/2cff89ed
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/2cff89ed

Branch: refs/heads/master
Commit: 2cff89ed93bbacf8d054399514c1ca4fb8b24730
Parents: c3ef61d
Author: Stephan Ewen <[email protected]>
Authored: Mon Aug 3 16:28:34 2015 +0200
Committer: Stephan Ewen <[email protected]>
Committed: Mon Aug 3 18:49:48 2015 +0200

----------------------------------------------------------------------
 .../src/main/java/org/apache/flink/client/program/Client.java   | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink/blob/2cff89ed/flink-clients/src/main/java/org/apache/flink/client/program/Client.java
----------------------------------------------------------------------
diff --git 
a/flink-clients/src/main/java/org/apache/flink/client/program/Client.java 
b/flink-clients/src/main/java/org/apache/flink/client/program/Client.java
index d2022bb..78c82f6 100644
--- a/flink-clients/src/main/java/org/apache/flink/client/program/Client.java
+++ b/flink-clients/src/main/java/org/apache/flink/client/program/Client.java
@@ -26,6 +26,7 @@ import java.net.InetAddress;
 import java.net.InetSocketAddress;
 import java.net.UnknownHostException;
 import java.util.List;
+import java.util.concurrent.TimeUnit;
 
 import org.apache.flink.api.common.JobID;
 import org.apache.flink.api.common.JobSubmissionResult;
@@ -441,7 +442,9 @@ public class Client {
                }
                finally {
                        actorSystem.shutdown();
-                       actorSystem.awaitTermination();
+                       
+                       // wait at most for 30 seconds, to work around an 
occasional akka problem
+                       actorSystem.awaitTermination(new FiniteDuration(30, 
TimeUnit.SECONDS));
                }
        }
 

Reply via email to