You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gobblin.apache.org by ab...@apache.org on 2018/05/21 23:35:05 UTC

incubator-gobblin git commit: [GOBBLIN-497] GobblinHelixJobScheduler should wait until service is fully up before any job scheduling

Repository: incubator-gobblin
Updated Branches:
  refs/heads/master 7af61741c -> a66205a7e


[GOBBLIN-497] GobblinHelixJobScheduler should wait until service is fully up before any job scheduling

Closes #2368 from yukuai518/npe


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

Branch: refs/heads/master
Commit: a66205a7e169c6a031ea5d006af6330e0839918d
Parents: 7af6174
Author: Kuai Yu <ku...@linkedin.com>
Authored: Mon May 21 16:35:00 2018 -0700
Committer: Abhishek Tiwari <ab...@linkedin.com>
Committed: Mon May 21 16:35:00 2018 -0700

----------------------------------------------------------------------
 .../org/apache/gobblin/cluster/GobblinHelixJobScheduler.java  | 7 +++++++
 1 file changed, 7 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-gobblin/blob/a66205a7/gobblin-cluster/src/main/java/org/apache/gobblin/cluster/GobblinHelixJobScheduler.java
----------------------------------------------------------------------
diff --git a/gobblin-cluster/src/main/java/org/apache/gobblin/cluster/GobblinHelixJobScheduler.java b/gobblin-cluster/src/main/java/org/apache/gobblin/cluster/GobblinHelixJobScheduler.java
index e539273..fac7242 100644
--- a/gobblin-cluster/src/main/java/org/apache/gobblin/cluster/GobblinHelixJobScheduler.java
+++ b/gobblin-cluster/src/main/java/org/apache/gobblin/cluster/GobblinHelixJobScheduler.java
@@ -88,6 +88,7 @@ public class GobblinHelixJobScheduler extends JobScheduler implements StandardMe
   private final MutableJobCatalog jobCatalog;
   private final MetricContext metricContext;
   private final Metrics metrics;
+  private boolean startServicesCompleted;
 
   public GobblinHelixJobScheduler(Properties properties, HelixManager helixManager, EventBus eventBus,
       Path appWorkDir, List<? extends Tag<?>> metadataTags, SchedulerService schedulerService,
@@ -102,6 +103,7 @@ public class GobblinHelixJobScheduler extends JobScheduler implements StandardMe
     this.jobCatalog = jobCatalog;
     this.metricContext = Instrumented.getMetricContext(new org.apache.gobblin.configuration.State(properties), this.getClass());
     this.metrics = new Metrics(this.metricContext);
+    this.startServicesCompleted = false;
   }
 
   @Nonnull
@@ -253,11 +255,16 @@ public class GobblinHelixJobScheduler extends JobScheduler implements StandardMe
   protected void startUp() throws Exception {
     this.eventBus.register(this);
     super.startUp();
+    this.startServicesCompleted = true;
   }
 
   @Override
   public void scheduleJob(Properties jobProps, JobListener jobListener) throws JobException {
     try {
+      while (!startServicesCompleted) {
+        LOGGER.info("{} service is not fully up, waiting here...", this.getClass().getName());
+        Thread.sleep(1000);
+      }
       scheduleJob(jobProps, jobListener, Maps.newHashMap(), GobblinHelixJob.class);
     } catch (Exception e) {
       throw new JobException("Failed to schedule job " + jobProps.getProperty(ConfigurationKeys.JOB_NAME_KEY), e);