You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by je...@apache.org on 2019/05/29 19:19:37 UTC
[hadoop] branch branch-3.0 updated: YARN-9563. Resource report REST
API could return NaN or Inf (Ahmed Hussein via jeagles)
This is an automated email from the ASF dual-hosted git repository.
jeagles pushed a commit to branch branch-3.0
in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/branch-3.0 by this push:
new 9d63fc7 YARN-9563. Resource report REST API could return NaN or Inf (Ahmed Hussein via jeagles)
9d63fc7 is described below
commit 9d63fc7ed61ca6c3d901fe9984a7cca98ce07ea9
Author: Ahmed Hussein <ah...@apache.org>
AuthorDate: Wed May 29 14:19:20 2019 -0500
YARN-9563. Resource report REST API could return NaN or Inf (Ahmed Hussein via jeagles)
Signed-off-by: Jonathan Eagles <je...@gmail.com>
---
.../resourcemanager/scheduler/SchedulerApplicationAttempt.java | 5 +++--
.../resourcemanager/scheduler/common/fica/FiCaSchedulerApp.java | 4 +++-
.../server/resourcemanager/scheduler/capacity/TestLeafQueue.java | 9 +++++++++
3 files changed, 15 insertions(+), 3 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/scheduler/SchedulerApplicationAttempt.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/SchedulerApplicationAttempt.java
index 7f912c2..7de2976 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/SchedulerApplicationAttempt.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/SchedulerApplicationAttempt.java
@@ -1049,9 +1049,10 @@ public class SchedulerApplicationAttempt implements SchedulableEntity {
if (!calc.isInvalidDivisor(cluster)) {
float queueCapacityPerc = queue.getQueueInfo(false, false)
.getCapacity();
- if (queueCapacityPerc != 0) {
- queueUsagePerc = calc.divide(cluster, usedResourceClone,
+ queueUsagePerc = calc.divide(cluster, usedResourceClone,
Resources.multiply(cluster, queueCapacityPerc)) * 100;
+ if (Float.isNaN(queueUsagePerc) || Float.isInfinite(queueUsagePerc)) {
+ queueUsagePerc = 0.0f;
}
clusterUsagePerc =
calc.divide(cluster, usedResourceClone, cluster) * 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/scheduler/common/fica/FiCaSchedulerApp.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/common/fica/FiCaSchedulerApp.java
index 697b9d6..d63fd53 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/common/fica/FiCaSchedulerApp.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/common/fica/FiCaSchedulerApp.java
@@ -1019,7 +1019,9 @@ public class FiCaSchedulerApp extends SchedulerApplicationAttempt {
Resources.multiply(totalPartitionRes, queueAbsMaxCapPerPartition))
* 100;
}
- report.setQueueUsagePercentage(queueUsagePerc);
+ if (!(Float.isNaN(queueUsagePerc) || Float.isInfinite(queueUsagePerc))) {
+ report.setQueueUsagePercentage(queueUsagePerc);
+ }
}
return report;
} finally {
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestLeafQueue.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestLeafQueue.java
index 9f7919e..51d5589 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestLeafQueue.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestLeafQueue.java
@@ -3959,6 +3959,15 @@ public class TestLeafQueue {
0.01f);
assertEquals(15.0f,
app.getResourceUsageReport().getClusterUsagePercentage(), 0.01f);
+
+ // test that queueUsagePercentage returns neither NaN nor Infinite
+ AbstractCSQueue zeroQueue = createQueue("test2.2", null,
+ Float.MIN_VALUE, Float.MIN_VALUE);
+ app = new FiCaSchedulerApp(appAttId, user, zeroQueue,
+ qChild.getAbstractUsersManager(), rmContext);
+ app.getAppAttemptResourceUsage().incUsed(requestedResource);
+ assertEquals(0.0f, app.getResourceUsageReport().getQueueUsagePercentage(),
+ 0.01f);
}
private ApplicationAttemptId createAppAttemptId(int appId, int attemptId) {
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org