Ver Fonte

HDFS-9376. TestSeveralNameNodes fails occasionally. Contributed by Masatake Iwasaki.

cnauroth há 9 anos atrás
pai
commit
84a8147791

+ 3 - 0
hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt

@@ -400,6 +400,9 @@ Trunk (Unreleased)
     HDFS-9580. TestComputeInvalidateWork#testDatanodeReRegistration failed
     due to unexpected number of invalidate blocks. (Wei-Chiu Chuang via zhz)
 
+    HDFS-9376. TestSeveralNameNodes fails occasionally.
+    (Masatake Iwasaki via cnauroth)
+
     BREAKDOWN OF HDFS-7285 SUBTASKS AND RELATED JIRAS
 
       HDFS-7347. Configurable erasure coding policy for individual files and

+ 6 - 2
hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestSeveralNameNodes.java

@@ -32,6 +32,7 @@ import org.apache.hadoop.fs.FSDataOutputStream;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hdfs.MiniDFSCluster;
+import org.apache.hadoop.hdfs.client.HdfsClientConfigKeys;
 import org.apache.hadoop.test.MultithreadedTestUtil.RepeatingTestThread;
 import org.apache.hadoop.test.MultithreadedTestUtil.TestContext;
 import org.junit.Test;
@@ -57,6 +58,8 @@ public class TestSeveralNameNodes {
     // setup the harness
     harness.setNumberOfNameNodes(NUM_NAMENODES);
     harness.addFailoverThread(TIME_BETWEEN_FAILOVERS);
+    harness.conf.setInt(HdfsClientConfigKeys.Failover.SLEEPTIME_MAX_KEY, 1000);
+    harness.conf.setInt(HdfsClientConfigKeys.Failover.MAX_ATTEMPTS_KEY, 128);
 
     final MiniDFSCluster cluster = harness.startCluster();
     try {
@@ -78,7 +81,8 @@ public class TestSeveralNameNodes {
 
       // wait for all the writer threads to finish, or that we exceed the time
       long start = System.currentTimeMillis();
-      while ((System.currentTimeMillis() - start) < RUNTIME) {
+      while ((System.currentTimeMillis() - start) < RUNTIME &&
+          writers.size() > 0) {
         for (int i = 0; i < writers.size(); i++) {
           CircularWriter writer = writers.get(i);
           // remove the writer from the ones to check
@@ -176,4 +180,4 @@ public class TestSeveralNameNodes {
       return new Path(dir, Integer.toString(i));
     }
   }
-}
+}