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/capacity/CapacityScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java index 21cdbf9113f..eae8b177d94 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java @@ -3106,7 +3106,8 @@ public long checkAndGetApplicationLifetime(String queueName, // check only for maximum, that's enough because default can't // exceed maximum if (maximumApplicationLifetime <= 0) { - return lifetimeRequestedByApp; + return (lifetimeRequestedByApp <= 0) ? defaultApplicationLifetime : + lifetimeRequestedByApp; } if (lifetimeRequestedByApp <= 0) { 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/capacity/LeafQueue.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/LeafQueue.java index a178f9e9a0b..9561bf44232 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/LeafQueue.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/LeafQueue.java @@ -259,7 +259,8 @@ protected void setupQueueConfigs(Resource clusterResource, conf.getMaximumLifetimePerQueue((getQueuePath())); defaultApplicationLifetime = conf.getDefaultLifetimePerQueue((getQueuePath())); - if (defaultApplicationLifetime > maxApplicationLifetime) { + if (maxApplicationLifetime > 0 && + defaultApplicationLifetime > maxApplicationLifetime) { throw new YarnRuntimeException( "Default lifetime" + defaultApplicationLifetime + " can't exceed maximum lifetime " + maxApplicationLifetime);