Author: tucu
Date: Tue Jul 23 00:02:22 2013
New Revision: 1505862
URL: http://svn.apache.org/r1505862
Log:
YARN-461. Fair scheduler should not accept apps with empty string queue name.
(ywskycn via tucu)
Modified:
hadoop/common/branches/branch-2/hadoop-yarn-project/CHANGES.txt
hadoop/common/branches/branch-2/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/FairScheduler.java
hadoop/common/branches/branch-2/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/TestFairScheduler.java
Modified: hadoop/common/branches/branch-2/hadoop-yarn-project/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-yarn-project/CHANGES.txt?rev=1505862&r1=1505861&r2=1505862&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-yarn-project/CHANGES.txt (original)
+++ hadoop/common/branches/branch-2/hadoop-yarn-project/CHANGES.txt Tue Jul 23
00:02:22 2013
@@ -785,6 +785,9 @@ Release 2.1.0-beta - 2013-07-02
YARN-909. Disable TestLinuxContainerExecutorWithMocks on Windows. (Chuan
Liu
via cnauroth)
+ YARN-461. Fair scheduler should not accept apps with empty string queue
name.
+ (ywskycn via tucu)
+
Release 2.0.5-alpha - 06/06/2013
INCOMPATIBLE CHANGES
Modified:
hadoop/common/branches/branch-2/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/FairScheduler.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/FairScheduler.java?rev=1505862&r1=1505861&r2=1505862&view=diff
==============================================================================
---
hadoop/common/branches/branch-2/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/FairScheduler.java
(original)
+++
hadoop/common/branches/branch-2/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/FairScheduler.java
Tue Jul 23 00:02:22 2013
@@ -604,6 +604,15 @@ public class FairScheduler implements Re
*/
protected synchronized void addApplication(
ApplicationAttemptId applicationAttemptId, String queueName, String
user) {
+ if (queueName == null || queueName.isEmpty()) {
+ String message = "Reject application " + applicationAttemptId +
+ " submitted by user " + user + " with an empty queue name.";
+ LOG.info(message);
+ rmContext.getDispatcher().getEventHandler().handle(
+ new RMAppAttemptRejectedEvent(applicationAttemptId, message));
+ return;
+ }
+
RMApp rmApp = rmContext.getRMApps().get(applicationAttemptId);
FSLeafQueue queue = assignToQueue(rmApp, queueName, user);
Modified:
hadoop/common/branches/branch-2/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/TestFairScheduler.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/TestFairScheduler.java?rev=1505862&r1=1505861&r2=1505862&view=diff
==============================================================================
---
hadoop/common/branches/branch-2/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/TestFairScheduler.java
(original)
+++
hadoop/common/branches/branch-2/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/TestFairScheduler.java
Tue Jul 23 00:02:22 2013
@@ -558,7 +558,26 @@ public class TestFairScheduler {
assertEquals(0, scheduler.getQueueManager().getLeafQueue("user2")
.getAppSchedulables().size());
}
-
+
+ @Test
+ public void testEmptyQueueName() throws Exception {
+ Configuration conf = createConfiguration();
+
+ // only default queue
+ assertEquals(1, scheduler.getQueueManager().getLeafQueues().size());
+
+ // submit app with empty queue
+ ApplicationAttemptId appAttemptId = createAppAttemptId(1, 1);
+ AppAddedSchedulerEvent appAddedEvent = new AppAddedSchedulerEvent(
+ appAttemptId, "", "user1");
+ scheduler.handle(appAddedEvent);
+
+ // submission rejected
+ assertEquals(1, scheduler.getQueueManager().getLeafQueues().size());
+ assertNull(scheduler.getSchedulerApp(appAttemptId));
+ assertEquals(0, resourceManager.getRMContext().getRMApps().size());
+ }
+
@Test
public void testAssignToQueue() throws Exception {
Configuration conf = createConfiguration();
@@ -1929,7 +1948,7 @@ public class TestFairScheduler {
scheduler.handle(node2UpdateEvent);
assertEquals(1, app.getLiveContainers().size());
}
-
+
/**
* If we update our ask to strictly request a node, it doesn't make sense to
keep
* a reservation on another.