You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2017/02/09 02:31:19 UTC

[06/39] kylin git commit: minor, stablize DefaultSchedulerTest

minor, stablize DefaultSchedulerTest


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

Branch: refs/heads/master-hbase0.98
Commit: a058bfb8b0490fe36b7fe4da026028411ed208a5
Parents: 546f88f
Author: Li Yang <li...@apache.org>
Authored: Fri Feb 3 13:43:56 2017 +0800
Committer: Li Yang <li...@apache.org>
Committed: Fri Feb 3 13:43:56 2017 +0800

----------------------------------------------------------------------
 .../job/impl/threadpool/BaseSchedulerTest.java  | 36 ++++++++++++++------
 1 file changed, 26 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/a058bfb8/core-job/src/test/java/org/apache/kylin/job/impl/threadpool/BaseSchedulerTest.java
----------------------------------------------------------------------
diff --git a/core-job/src/test/java/org/apache/kylin/job/impl/threadpool/BaseSchedulerTest.java b/core-job/src/test/java/org/apache/kylin/job/impl/threadpool/BaseSchedulerTest.java
index fdf5252..1ada9a1 100644
--- a/core-job/src/test/java/org/apache/kylin/job/impl/threadpool/BaseSchedulerTest.java
+++ b/core-job/src/test/java/org/apache/kylin/job/impl/threadpool/BaseSchedulerTest.java
@@ -31,11 +31,15 @@ import org.apache.kylin.job.execution.ExecutableState;
 import org.apache.kylin.job.lock.MockJobLock;
 import org.junit.After;
 import org.junit.Before;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  */
 public abstract class BaseSchedulerTest extends LocalFileMetadataTestCase {
 
+    private static final Logger logger = LoggerFactory.getLogger(BaseSchedulerTest.class);
+    
     private DefaultScheduler scheduler;
 
     protected ExecutableManager jobService;
@@ -70,19 +74,31 @@ public abstract class BaseSchedulerTest extends LocalFileMetadataTestCase {
     }
 
     protected void waitForJobFinish(String jobId) {
-        while (true) {
-            AbstractExecutable job = jobService.getJob(jobId);
-            final ExecutableState status = job.getStatus();
-            if (status == ExecutableState.SUCCEED || status == ExecutableState.ERROR || status == ExecutableState.STOPPED || status == ExecutableState.DISCARDED) {
-                break;
-            } else {
-                try {
-                    Thread.sleep(5000);
-                } catch (InterruptedException e) {
-                    e.printStackTrace();
+        int error = 0;
+        final int errorLimit = 3;
+        
+        while (error < errorLimit) {
+            try {
+                Thread.sleep(2000);
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+
+            try {
+                AbstractExecutable job = jobService.getJob(jobId);
+                ExecutableState status = job.getStatus();
+                if (status == ExecutableState.SUCCEED || status == ExecutableState.ERROR || status == ExecutableState.STOPPED || status == ExecutableState.DISCARDED) {
+                    break;
                 }
+            } catch (Exception ex) {
+                logger.error("", ex);
+                error++;
             }
         }
+        
+        if (error >= errorLimit) {
+            throw new RuntimeException("waitForJobFinish() encounters exceptions, see logs above");
+        }
     }
 
     protected void waitForJobStatus(String jobId, ExecutableState state, long interval) {