From f2bb889a987bff1e9de585bc92da8172ac6a989b Mon Sep 17 00:00:00 2001 From: Craig Condit Date: Thu, 16 May 2019 14:57:27 -0500 Subject: [PATCH] Fix various NPEs in Scheduler UI --- .../webapp/CapacitySchedulerPage.java | 20 ++++++++++++++++--- .../dao/PartitionQueueCapacitiesInfo.java | 9 +++++---- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/CapacitySchedulerPage.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/CapacitySchedulerPage.java index ed2f64e0945..89d6ac5f292 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/CapacitySchedulerPage.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/CapacitySchedulerPage.java @@ -160,7 +160,11 @@ private void renderQueueCapacityInfo(ResponseInfo ri, String label) { appendPercent(resourceUsages.getUsed().toString(), capacities.getUsedCapacity() / 100)) .__("Configured Capacity:", - capacities.getConfiguredMinResource().toString()) + (capacities.getConfiguredMinResource() == null + || capacities.getConfiguredMinResource().getResource() + .equals(Resources.none())) + ? "0" + : capacities.getConfiguredMinResource().toString()) .__("Configured Max Capacity:", (capacities.getConfiguredMaxResource() == null || capacities.getConfiguredMaxResource().getResource() @@ -168,10 +172,20 @@ private void renderQueueCapacityInfo(ResponseInfo ri, String label) { ? "unlimited" : capacities.getConfiguredMaxResource().toString()) .__("Effective Capacity:", - appendPercent(capacities.getEffectiveMinResource().toString(), + (capacities.getEffectiveMinResource() == null + || capacities.getEffectiveMinResource().getResource() + .equals(Resources.none())) + ? "0" + : appendPercent( + capacities.getEffectiveMinResource().toString(), capacities.getCapacity() / 100)) .__("Effective Max Capacity:", - appendPercent(capacities.getEffectiveMaxResource().toString(), + (capacities.getEffectiveMaxResource() == null + || capacities.getEffectiveMaxResource().getResource() + .equals(Resources.none())) + ? "unlimited" + : appendPercent( + capacities.getEffectiveMaxResource().toString(), capacities.getMaxCapacity() / 100)) .__("Absolute Used Capacity:", percent(capacities.getAbsoluteUsedCapacity() / 100)) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/PartitionQueueCapacitiesInfo.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/PartitionQueueCapacitiesInfo.java index 2a155028aa8..50fa8559be7 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/PartitionQueueCapacitiesInfo.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/PartitionQueueCapacitiesInfo.java @@ -17,13 +17,13 @@ */ package org.apache.hadoop.yarn.server.resourcemanager.webapp.dao; +import org.apache.hadoop.yarn.api.records.Resource; +import org.apache.hadoop.yarn.util.resource.Resources; + import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlRootElement; -import org.apache.hadoop.yarn.api.records.Resource; -import org.apache.hadoop.yarn.util.resource.Resources; - /** * This class represents queue capacities for a given partition */ @@ -136,7 +136,8 @@ public ResourceInfo getConfiguredMinResource() { } public ResourceInfo getConfiguredMaxResource() { - if (configuredMaxResource.getResource().equals(Resources.none())) { + if (configuredMaxResource == null || Resources.none() + .equals(configuredMaxResource.getResource())) { return null; } return configuredMaxResource; -- 2.21.0