YARN-4784. Fairscheduler: defaultQueueSchedulingPolicy should not accept FIFO. (Yufei Gu via kasha)
This commit is contained in:
parent
6e297836d6
commit
170c4fd4cd
@ -42,6 +42,7 @@
|
||||
import org.apache.hadoop.yarn.api.records.ReservationACL;
|
||||
import org.apache.hadoop.yarn.api.records.Resource;
|
||||
import org.apache.hadoop.yarn.server.resourcemanager.resource.ResourceWeights;
|
||||
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.policies.FifoPolicy;
|
||||
import org.apache.hadoop.yarn.util.Clock;
|
||||
import org.apache.hadoop.yarn.util.SystemClock;
|
||||
import org.apache.hadoop.yarn.util.resource.Resources;
|
||||
@ -331,6 +332,11 @@ public synchronized void reloadAllocations() throws IOException,
|
||||
} else if ("defaultQueueSchedulingPolicy".equals(element.getTagName())
|
||||
|| "defaultQueueSchedulingMode".equals(element.getTagName())) {
|
||||
String text = ((Text)element.getFirstChild()).getData().trim();
|
||||
if (text.equalsIgnoreCase(FifoPolicy.NAME)) {
|
||||
throw new AllocationConfigurationException("Bad fair scheduler "
|
||||
+ "config file: defaultQueueSchedulingPolicy or "
|
||||
+ "defaultQueueSchedulingMode can't be FIFO.");
|
||||
}
|
||||
defaultSchedPolicy = SchedulingPolicy.parse(text);
|
||||
} else if ("queuePlacementPolicy".equals(element.getTagName())) {
|
||||
placementPolicyElement = element;
|
||||
|
@ -580,6 +580,28 @@ public void testQueueNameContainingOnlyWhitespace() throws Exception {
|
||||
allocLoader.reloadAllocations();
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify that defaultQueueSchedulingMode can't accept FIFO as a value.
|
||||
*/
|
||||
@Test (expected = AllocationConfigurationException.class)
|
||||
public void testDefaultQueueSchedulingModeIsFIFO() throws Exception {
|
||||
Configuration conf = new Configuration();
|
||||
conf.set(FairSchedulerConfiguration.ALLOCATION_FILE, ALLOC_FILE);
|
||||
|
||||
PrintWriter out = new PrintWriter(new FileWriter(ALLOC_FILE));
|
||||
out.println("<?xml version=\"1.0\"?>");
|
||||
out.println("<allocations>");
|
||||
out.println("<defaultQueueSchedulingPolicy>fifo</defaultQueueSchedulingPolicy>");
|
||||
out.println("</allocations>");
|
||||
out.close();
|
||||
|
||||
AllocationFileLoaderService allocLoader = new AllocationFileLoaderService();
|
||||
allocLoader.init(conf);
|
||||
ReloadListener confHolder = new ReloadListener();
|
||||
allocLoader.setReloadListener(confHolder);
|
||||
allocLoader.reloadAllocations();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testReservableQueue() throws Exception {
|
||||
Configuration conf = new Configuration();
|
||||
|
Loading…
Reference in New Issue
Block a user