YARN-2340. Fixed NPE when queue is stopped during RM restart. Contributed by Rohith Sharmaks

(cherry picked from commit 0d89859b51157078cc504ac81dc8aa75ce6b1782)

(cherry picked from commit 8b398a66ca3728f47363fc8b2fcf7e556e6bbf5a)
(cherry picked from commit 37f1789f419fa741c2fbae9855549d405e856bff)
This commit is contained in:
Jian He 2014-12-22 21:53:22 -08:00 committed by Vinod Kumar Vavilapalli
parent 6dfdcf094d
commit 8cdcb792a1
3 changed files with 13 additions and 5 deletions

View File

@ -54,6 +54,9 @@ Release 2.6.1 - UNRELEASED
YARN-2952. Fixed incorrect version check in StateStore. (Rohith Sharmaks
via jianhe)
YARN-2340. Fixed NPE when queue is stopped during RM restart.
(Rohith Sharmaks via jianhe)
Release 2.6.0 - 2014-11-18
INCOMPATIBLE CHANGES

View File

@ -702,11 +702,14 @@ private synchronized void addApplication(ApplicationId applicationId,
try {
queue.submitApplication(applicationId, user, queueName);
} catch (AccessControlException ace) {
LOG.info("Failed to submit application " + applicationId + " to queue "
+ queueName + " from user " + user, ace);
this.rmContext.getDispatcher().getEventHandler()
.handle(new RMAppRejectedEvent(applicationId, ace.toString()));
return;
// Ignore the exception for recovered app as the app was previously accepted
if (!isAppRecovering) {
LOG.info("Failed to submit application " + applicationId + " to queue "
+ queueName + " from user " + user, ace);
this.rmContext.getDispatcher().getEventHandler()
.handle(new RMAppRejectedEvent(applicationId, ace.toString()));
return;
}
}
// update the metrics
queue.getMetrics().submitApp(user);

View File

@ -417,6 +417,8 @@ public void testCapacitySchedulerRecovery() throws Exception {
rm1.clearQueueMetrics(app1_2);
rm1.clearQueueMetrics(app2);
csConf.set("yarn.scheduler.capacity.root.Default.QueueB.state", "STOPPED");
// Re-start RM
rm2 = new MockRM(csConf, memStore);
rm2.start();