YARN-9257. Distributed Shell client throws a NPE for a non-existent queue. Contributed by Charan Hebri.

This commit is contained in:
Sunil G 2019-02-05 13:41:44 +05:30
parent aa7ce50e55
commit ba38db4f5b
2 changed files with 24 additions and 0 deletions

View File

@ -676,6 +676,12 @@ public boolean run() throws IOException, YarnException {
}
QueueInfo queueInfo = yarnClient.getQueueInfo(this.amQueue);
if (queueInfo == null) {
throw new IllegalArgumentException(String
.format("Queue %s not present in scheduler configuration.",
this.amQueue));
}
LOG.info("Queue info"
+ ", queueName=" + queueInfo.getQueueName()
+ ", queueCurrentCapacity=" + queueInfo.getCurrentCapacity()

View File

@ -1728,6 +1728,24 @@ public void testDistributedShellAMResourcesWithUnknownResource()
client.run();
}
@Test(expected=IllegalArgumentException.class)
public void testDistributedShellNonExistentQueue()
throws Exception {
String[] args = {
"--jar",
APPMASTER_JAR,
"--num_containers",
"1",
"--shell_command",
Shell.WINDOWS ? "dir" : "ls",
"--queue",
"non-existent-queue"
};
Client client = new Client(new Configuration(yarnCluster.getConfig()));
client.init(args);
client.run();
}
@Test
public void testDistributedShellWithSingleFileLocalization()
throws Exception {