YARN-1933. Fixed test issues with TestAMRestart and TestNodeHealthService. Contributed by Jian He.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1587104 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
6351ee2a78
commit
c6b70f4760
@ -118,6 +118,9 @@ Release 2.4.1 - UNRELEASED
|
||||
YARN-1907. TestRMApplicationHistoryWriter#testRMWritingMassiveHistory
|
||||
intermittently fails. (Mit Desai via kihwal)
|
||||
|
||||
YARN-1933. Fixed test issues with TestAMRestart and TestNodeHealthService.
|
||||
(Jian He via vinodkv)
|
||||
|
||||
Release 2.4.0 - 2014-04-07
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
@ -78,11 +78,17 @@ private Configuration getConfForNodeHealthScript() {
|
||||
}
|
||||
|
||||
private void writeNodeHealthScriptFile(String scriptStr, boolean setExecutable)
|
||||
throws IOException {
|
||||
PrintWriter pw = new PrintWriter(new FileOutputStream(nodeHealthscriptFile));
|
||||
pw.println(scriptStr);
|
||||
pw.flush();
|
||||
pw.close();
|
||||
throws IOException {
|
||||
PrintWriter pw = null;
|
||||
try {
|
||||
FileUtil.setWritable(nodeHealthscriptFile, true);
|
||||
FileUtil.setReadable(nodeHealthscriptFile, true);
|
||||
pw = new PrintWriter(new FileOutputStream(nodeHealthscriptFile));
|
||||
pw.println(scriptStr);
|
||||
pw.flush();
|
||||
} finally {
|
||||
pw.close();
|
||||
}
|
||||
FileUtil.setExecutable(nodeHealthscriptFile, setExecutable);
|
||||
}
|
||||
|
||||
|
@ -977,7 +977,7 @@ T runWithRetries() throws Exception {
|
||||
Thread.sleep(zkRetryInterval);
|
||||
continue;
|
||||
}
|
||||
LOG.error("Error while doing ZK operation.", ke);
|
||||
LOG.debug("Error while doing ZK operation.", ke);
|
||||
throw ke;
|
||||
}
|
||||
}
|
||||
|
@ -180,7 +180,6 @@ public void testAMRestartWithExistingContainers() throws Exception {
|
||||
// complete container by sending the container complete event which has earlier
|
||||
// attempt's attemptId
|
||||
nm1.nodeHeartbeat(am1.getApplicationAttemptId(), 3, ContainerState.COMPLETE);
|
||||
rm1.waitForState(nm1, containerId3, RMContainerState.COMPLETED);
|
||||
|
||||
// Even though the completed container containerId3 event was sent to the
|
||||
// earlier failed attempt, new RMAppAttempt can also capture this container
|
||||
@ -189,7 +188,7 @@ public void testAMRestartWithExistingContainers() throws Exception {
|
||||
RMAppAttempt newAttempt =
|
||||
app1.getRMAppAttempt(am2.getApplicationAttemptId());
|
||||
// 4 containers finished, acquired/allocated/reserved/completed.
|
||||
Assert.assertEquals(4, newAttempt.getJustFinishedContainers().size());
|
||||
waitForContainersToFinish(4, newAttempt);
|
||||
boolean container3Exists = false, container4Exists = false, container5Exists =
|
||||
false, container6Exists = false;
|
||||
for(ContainerStatus status : newAttempt.getJustFinishedContainers()) {
|
||||
@ -230,11 +229,22 @@ public void testAMRestartWithExistingContainers() throws Exception {
|
||||
Assert.assertFalse(schedulerNewAttempt.getLiveContainers().contains(
|
||||
containerId2));
|
||||
// all 4 normal containers finished.
|
||||
Assert.assertEquals(5, newAttempt.getJustFinishedContainers().size());
|
||||
|
||||
System.out.println("New attempt's just finished containers: "
|
||||
+ newAttempt.getJustFinishedContainers());
|
||||
waitForContainersToFinish(5, newAttempt);
|
||||
rm1.stop();
|
||||
}
|
||||
|
||||
private void waitForContainersToFinish(int expectedNum, RMAppAttempt attempt)
|
||||
throws InterruptedException {
|
||||
int count = 0;
|
||||
while (attempt.getJustFinishedContainers().size() != expectedNum
|
||||
&& count < 500) {
|
||||
Thread.sleep(100);
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNMTokensRebindOnAMRestart() throws Exception {
|
||||
YarnConfiguration conf = new YarnConfiguration();
|
||||
|
Loading…
Reference in New Issue
Block a user