Browse Source

HDFS-10603. Fix flaky tests in org.apache.hadoop.hdfs.server.namenode.snapshot.TestOpenFilesWithSnapshot. Contributed by Yiqun Lin.

(cherry picked from commit fc570b55b9d1d1d57329eca223f443e2c86f34b7)
(cherry picked from commit c92601e9814a041800e466fabdcc3c44309364c4)
Akira Ajisaka 8 years ago
parent
commit
d8181a8cb8

+ 9 - 12
hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/snapshot/TestOpenFilesWithSnapshot.java

@@ -69,7 +69,7 @@ public class TestOpenFilesWithSnapshot {
     // delete files separately
     fs.delete(new Path("/test/test/test2"), true);
     fs.delete(new Path("/test/test/test3"), true);
-    cluster.restartNameNode();
+    restartNameNode();
   }
 
   @Test
@@ -79,7 +79,7 @@ public class TestOpenFilesWithSnapshot {
 
     // delete parent directory
     fs.delete(new Path("/test/test"), true);
-    cluster.restartNameNode();
+    restartNameNode();
   }
 
   @Test
@@ -87,11 +87,7 @@ public class TestOpenFilesWithSnapshot {
     Path path = new Path("/test");
     doWriteAndAbort(fs, path);
     fs.delete(new Path("/test/test"), true);
-    NameNode nameNode = cluster.getNameNode();
-    NameNodeAdapter.enterSafeMode(nameNode, false);
-    NameNodeAdapter.saveNamespace(nameNode);
-    NameNodeAdapter.leaveSafeMode(nameNode);
-    cluster.restartNameNode(true);
+    restartNameNode();
     
     // read snapshot file after restart
     String test2snapshotPath = Snapshot.getSnapshotPath(path.toString(),
@@ -108,11 +104,7 @@ public class TestOpenFilesWithSnapshot {
     doWriteAndAbort(fs, path);
     fs.delete(new Path("/test/test/test2"), true);
     fs.delete(new Path("/test/test/test3"), true);
-    NameNode nameNode = cluster.getNameNode();
-    NameNodeAdapter.enterSafeMode(nameNode, false);
-    NameNodeAdapter.saveNamespace(nameNode);
-    NameNodeAdapter.leaveSafeMode(nameNode);
-    cluster.restartNameNode(true);
+    restartNameNode();
     
     // read snapshot file after restart
     String test2snapshotPath = Snapshot.getSnapshotPath(path.toString(),
@@ -203,6 +195,11 @@ public class TestOpenFilesWithSnapshot {
 
     fs.rename(new Path("/test/test"), new Path("/test/test-renamed"));
     fs.delete(new Path("/test/test-renamed"), true);
+    restartNameNode();
+  }
+
+  private void restartNameNode() throws Exception {
+    cluster.triggerBlockReports();
     NameNode nameNode = cluster.getNameNode();
     NameNodeAdapter.enterSafeMode(nameNode, false);
     NameNodeAdapter.saveNamespace(nameNode);