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/fair/FSAppAttempt.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/FSAppAttempt.java index d9f32623246..db4ecc9bf14 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/FSAppAttempt.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/FSAppAttempt.java @@ -1198,7 +1198,10 @@ private boolean isUsageBelowShare(Resource usage, Resource share) { * @return true if the app is starved for fairshare, false otherwise */ boolean isStarvedForFairShare() { - return isUsageBelowShare(getResourceUsage(), getFairShare()); + Resource fairDemand = Resources.componentwiseMin(fairShare, demand); + + // Check if the queue is starved for fairshare + return isUsageBelowShare(getResourceUsage(), fairDemand); } /**