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/CapacitySchedulerConfigValidator.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/CapacitySchedulerConfigValidator.java index ef9f97aee18..24c65f9cddf 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/CapacitySchedulerConfigValidator.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/CapacitySchedulerConfigValidator.java @@ -141,6 +141,11 @@ public static void validateQueueHierarchy( + oldQueue.getQueuePath()); } } + if (oldQueue.getState() == QueueState.DRAINING && + newQueueState == QueueState.RUNNING) { + throw new IOException(oldQueue.getQueuePath() + " is in DRAINING " + + "state. Can not restart queue until it is fully stopped."); + } if (null == newQueue) { // old queue doesn't exist in the new XML if (oldQueue.getState() == QueueState.STOPPED ||