diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AbstractYarnScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AbstractYarnScheduler.java index cf5e13b..89de2fc 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AbstractYarnScheduler.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AbstractYarnScheduler.java @@ -220,7 +220,9 @@ protected void serviceStart() throws Exception { if (updateThread != null) { updateThread.start(); } - schedulingMonitorManager.startAll(); + if (schedulingMonitorManager != null) { + schedulingMonitorManager.startAll(); + } super.serviceStart(); } @@ -1433,8 +1435,12 @@ protected void triggerUpdate() { public void reinitialize(Configuration conf, RMContext rmContext) throws IOException { try { - LOG.info("Reinitializing SchedulingMonitorManager ..."); - schedulingMonitorManager.reinitialize(rmContext, conf); + // If re-init is called before init the manager is null and the RM + // will crash, this happens in a number of tests. + if (schedulingMonitorManager != null) { + LOG.info("Reinitializing SchedulingMonitorManager ..."); + schedulingMonitorManager.reinitialize(rmContext, conf); + } } catch (YarnException e) { throw new IOException(e); }