Author: tucu Date: Mon Mar 18 19:44:01 2013 New Revision: 1457936 URL: http://svn.apache.org/r1457936 Log: YARN-485. TestProcfsProcessTree#testProcessTree() doesn't wait long enough for the process to die. (kkambatl via tucu)
Modified: hadoop/common/trunk/hadoop-yarn-project/CHANGES.txt hadoop/common/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestProcfsBasedProcessTree.java Modified: hadoop/common/trunk/hadoop-yarn-project/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-yarn-project/CHANGES.txt?rev=1457936&r1=1457935&r2=1457936&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-yarn-project/CHANGES.txt (original) +++ hadoop/common/trunk/hadoop-yarn-project/CHANGES.txt Mon Mar 18 19:44:01 2013 @@ -100,6 +100,9 @@ Release 2.0.5-beta - UNRELEASED YARN-196. Nodemanager should be more robust in handling connection failure to ResourceManager when a cluster is started (Xuan Gong via hitesh) + YARN-485. TestProcfsProcessTree#testProcessTree() doesn't wait long enough + for the process to die. (kkambatl via tucu) + Release 2.0.4-alpha - UNRELEASED INCOMPATIBLE CHANGES Modified: hadoop/common/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestProcfsBasedProcessTree.java URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestProcfsBasedProcessTree.java?rev=1457936&r1=1457935&r2=1457936&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestProcfsBasedProcessTree.java (original) +++ hadoop/common/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestProcfsBasedProcessTree.java Mon Mar 18 19:44:01 2013 @@ -18,6 +18,8 @@ package org.apache.hadoop.yarn.util; +import static org.junit.Assert.fail; + import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; @@ -188,11 +190,20 @@ public class TestProcfsBasedProcessTree // destroy the process and all its subprocesses destroyProcessTree(pid); - if (isSetsidAvailable()) { // whole processtree should be gone - Assert.assertFalse("Proceesses in process group live", - isAnyProcessInTreeAlive(p)); - } else {// process should be gone - Assert.assertFalse("ProcessTree must have been gone", isAlive(pid)); + boolean isAlive = true; + for (int tries = 100; tries > 0; tries--) { + if (isSetsidAvailable()) {// whole processtree + isAlive = isAnyProcessInTreeAlive(p); + } else {// process + isAlive = isAlive(pid); + } + if (!isAlive) { + break; + } + Thread.sleep(100); + } + if (isAlive) { + fail("ProcessTree shouldn't be alive"); } LOG.info("Process-tree dump follows: \n" + processTreeDump);