YARN-2096. Race in TestRMRestart#testQueueMetricsOnRMRestart. (Anubhav Dhoot via kasha)
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1597223 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
a00b2d4f37
commit
7dd378c274
|
@ -143,6 +143,9 @@ Release 2.5.0 - UNRELEASED
|
||||||
YARN-2089. FairScheduler: QueuePlacementPolicy and QueuePlacementRule
|
YARN-2089. FairScheduler: QueuePlacementPolicy and QueuePlacementRule
|
||||||
are missing audience annotations. (Zhihai Xu via kasha)
|
are missing audience annotations. (Zhihai Xu via kasha)
|
||||||
|
|
||||||
|
YARN-2096. Race in TestRMRestart#testQueueMetricsOnRMRestart.
|
||||||
|
(Anubhav Dhoot via kasha)
|
||||||
|
|
||||||
Release 2.4.1 - UNRELEASED
|
Release 2.4.1 - UNRELEASED
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
|
|
@ -1638,10 +1638,16 @@ public class TestRMRestart {
|
||||||
|
|
||||||
// create app that gets launched and does allocate before RM restart
|
// create app that gets launched and does allocate before RM restart
|
||||||
RMApp app1 = rm1.submitApp(200);
|
RMApp app1 = rm1.submitApp(200);
|
||||||
assertQueueMetrics(qm1, 1, 1, 0, 0);
|
// Need to wait first for AppAttempt to be started (RMAppState.ACCEPTED)
|
||||||
nm1.nodeHeartbeat(true);
|
// and then for it to reach RMAppAttemptState.SCHEDULED
|
||||||
|
// inorder to ensure appsPending metric is incremented
|
||||||
|
rm1.waitForState(app1.getApplicationId(), RMAppState.ACCEPTED);
|
||||||
RMAppAttempt attempt1 = app1.getCurrentAppAttempt();
|
RMAppAttempt attempt1 = app1.getCurrentAppAttempt();
|
||||||
ApplicationAttemptId attemptId1 = attempt1.getAppAttemptId();
|
ApplicationAttemptId attemptId1 = attempt1.getAppAttemptId();
|
||||||
|
rm1.waitForState(attemptId1, RMAppAttemptState.SCHEDULED);
|
||||||
|
assertQueueMetrics(qm1, 1, 1, 0, 0);
|
||||||
|
|
||||||
|
nm1.nodeHeartbeat(true);
|
||||||
rm1.waitForState(attemptId1, RMAppAttemptState.ALLOCATED);
|
rm1.waitForState(attemptId1, RMAppAttemptState.ALLOCATED);
|
||||||
MockAM am1 = rm1.sendAMLaunched(attempt1.getAppAttemptId());
|
MockAM am1 = rm1.sendAMLaunched(attempt1.getAppAttemptId());
|
||||||
am1.registerAppAttempt();
|
am1.registerAppAttempt();
|
||||||
|
@ -1660,11 +1666,12 @@ public class TestRMRestart {
|
||||||
// PHASE 2: create new RM and start from old state
|
// PHASE 2: create new RM and start from old state
|
||||||
// create new RM to represent restart and recover state
|
// create new RM to represent restart and recover state
|
||||||
MockRM rm2 = new MockRM(conf, memStore);
|
MockRM rm2 = new MockRM(conf, memStore);
|
||||||
rm2.start();
|
|
||||||
nm1.setResourceTrackerService(rm2.getResourceTrackerService());
|
|
||||||
QueueMetrics qm2 = rm2.getResourceScheduler().getRootQueueMetrics();
|
QueueMetrics qm2 = rm2.getResourceScheduler().getRootQueueMetrics();
|
||||||
resetQueueMetrics(qm2);
|
resetQueueMetrics(qm2);
|
||||||
assertQueueMetrics(qm2, 0, 0, 0, 0);
|
assertQueueMetrics(qm2, 0, 0, 0, 0);
|
||||||
|
|
||||||
|
rm2.start();
|
||||||
|
nm1.setResourceTrackerService(rm2.getResourceTrackerService());
|
||||||
// recover app
|
// recover app
|
||||||
RMApp loadedApp1 = rm2.getRMContext().getRMApps().get(app1.getApplicationId());
|
RMApp loadedApp1 = rm2.getRMContext().getRMApps().get(app1.getApplicationId());
|
||||||
am1.setAMRMProtocol(rm2.getApplicationMasterService());
|
am1.setAMRMProtocol(rm2.getApplicationMasterService());
|
||||||
|
|
Loading…
Reference in New Issue