You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by se...@apache.org on 2016/11/28 13:32:19 UTC
[2/4] flink git commit: [hotfix] [tests] Harden timeout logic for
TaskManager registration in AbstractTaskManagerProcessFailureRecoveryTest
[hotfix] [tests] Harden timeout logic for TaskManager registration in AbstractTaskManagerProcessFailureRecoveryTest
Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/8e76322c
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/8e76322c
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/8e76322c
Branch: refs/heads/master
Commit: 8e76322cb73a19b4dcb46ba0d1a2ee01d4aeaa9f
Parents: 973ce7d
Author: Stephan Ewen <se...@apache.org>
Authored: Wed Nov 23 15:54:15 2016 +0100
Committer: Stephan Ewen <se...@apache.org>
Committed: Mon Nov 28 14:20:08 2016 +0100
----------------------------------------------------------------------
...ctTaskManagerProcessFailureRecoveryTest.java | 24 ++++++++++++--------
1 file changed, 14 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flink/blob/8e76322c/flink-tests/src/test/java/org/apache/flink/test/recovery/AbstractTaskManagerProcessFailureRecoveryTest.java
----------------------------------------------------------------------
diff --git a/flink-tests/src/test/java/org/apache/flink/test/recovery/AbstractTaskManagerProcessFailureRecoveryTest.java b/flink-tests/src/test/java/org/apache/flink/test/recovery/AbstractTaskManagerProcessFailureRecoveryTest.java
index 0ff2e78..3acf5bb 100644
--- a/flink-tests/src/test/java/org/apache/flink/test/recovery/AbstractTaskManagerProcessFailureRecoveryTest.java
+++ b/flink-tests/src/test/java/org/apache/flink/test/recovery/AbstractTaskManagerProcessFailureRecoveryTest.java
@@ -273,25 +273,25 @@ public abstract class AbstractTaskManagerProcessFailureRecoveryTest extends Test
public abstract void testTaskManagerFailure(int jobManagerPort, File coordinateDir) throws Exception;
- protected void waitUntilNumTaskManagersAreRegistered(ActorRef jobManager, int numExpected, long maxDelay)
+ protected void waitUntilNumTaskManagersAreRegistered(ActorRef jobManager, int numExpected, long maxDelayMillis)
throws Exception
{
- final long deadline = System.currentTimeMillis() + maxDelay;
- while (true) {
- long remaining = deadline - System.currentTimeMillis();
- if (remaining <= 0) {
- fail("The TaskManagers did not register within the expected time (" + maxDelay + "msecs)");
- }
+ final long interval = maxDelayMillis * 1_000_000;
+ final long deadline = System.nanoTime() + interval;
+ long remaining = interval;
- FiniteDuration timeout = new FiniteDuration(remaining, TimeUnit.MILLISECONDS);
+ while (remaining > 0) {
+ FiniteDuration timeout = new FiniteDuration(remaining, TimeUnit.NANOSECONDS);
try {
Future<?> result = Patterns.ask(jobManager,
JobManagerMessages.getRequestNumberRegisteredTaskManager(),
new Timeout(timeout));
- Integer numTMs = (Integer) Await.result(result, timeout);
+
+ int numTMs = (Integer) Await.result(result, timeout);
+
if (numTMs == numExpected) {
- break;
+ return;
}
}
catch (TimeoutException e) {
@@ -300,7 +300,11 @@ public abstract class AbstractTaskManagerProcessFailureRecoveryTest extends Test
catch (ClassCastException e) {
fail("Wrong response: " + e.getMessage());
}
+
+ remaining = deadline - System.nanoTime();
}
+
+ fail("The TaskManagers did not register within the expected time (" + maxDelayMillis + "msecs)");
}
protected static void printProcessLog(String processName, String log) {