From 03c96ef29eabdf0d6db461a4c7fb6bcb7f195e96 Mon Sep 17 00:00:00 2001 From: Eli Collins Date: Tue, 9 Oct 2012 00:18:27 +0000 Subject: [PATCH] HDFS-4018. TestDataNodeMultipleRegistrations#testMiniDFSClusterWithMultipleNN is missing some cluster cleanup. Contributed by Eli Collins git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1395821 13f79535-47bb-0310-9956-ffa450edef68 --- hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 ++ .../TestDataNodeMultipleRegistrations.java | 49 ++++++++++++------- 2 files changed, 34 insertions(+), 18 deletions(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index bdbd180cf04..437206ef120 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -311,6 +311,9 @@ Release 2.0.3-alpha - Unreleased HDFS-4003. test-patch should build the common native libs before running hdfs tests. (Colin Patrick McCabe via eli) + HDFS-4018. testMiniDFSClusterWithMultipleNN is missing some + cluster cleanup. (eli) + Release 2.0.2-alpha - 2012-09-07 INCOMPATIBLE CHANGES diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeMultipleRegistrations.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeMultipleRegistrations.java index 351a61cc45c..50272f1dda2 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeMultipleRegistrations.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeMultipleRegistrations.java @@ -36,6 +36,7 @@ import org.apache.hadoop.hdfs.MiniDFSNNTopology; import org.apache.hadoop.hdfs.server.common.HdfsServerConstants.StartupOption; import org.apache.hadoop.hdfs.server.namenode.FSImageTestUtil; import org.apache.hadoop.hdfs.server.namenode.NameNode; +import org.apache.hadoop.util.StringUtils; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -216,48 +217,62 @@ public class TestDataNodeMultipleRegistrations { LOG.info("dn bpos len (still should be 3):" + bposs.length); Assert.assertEquals("should've registered with three namenodes", 3, bposs.length); } finally { - if(cluster != null) - cluster.shutdown(); + cluster.shutdown(); } } @Test public void testMiniDFSClusterWithMultipleNN() throws IOException { - Configuration conf = new HdfsConfiguration(); // start Federated cluster and add a node. MiniDFSCluster cluster = new MiniDFSCluster.Builder(conf) .nnTopology(MiniDFSNNTopology.simpleFederatedTopology(2)) .build(); - Assert.assertNotNull(cluster); - Assert.assertEquals("(1)Should be 2 namenodes", 2, cluster.getNumNameNodes()); // add a node - cluster.addNameNode(conf, 0); - Assert.assertEquals("(1)Should be 3 namenodes", 3, cluster.getNumNameNodes()); - cluster.shutdown(); + try { + Assert.assertNotNull(cluster); + cluster.waitActive(); + Assert.assertEquals("(1)Should be 2 namenodes", 2, cluster.getNumNameNodes()); + + cluster.addNameNode(conf, 0); + Assert.assertEquals("(1)Should be 3 namenodes", 3, cluster.getNumNameNodes()); + } catch (IOException ioe) { + Assert.fail("Failed to add NN to cluster:" + StringUtils.stringifyException(ioe)); + } finally { + cluster.shutdown(); + } // 2. start with Federation flag set conf = new HdfsConfiguration(); cluster = new MiniDFSCluster.Builder(conf) .nnTopology(MiniDFSNNTopology.simpleFederatedTopology(1)) .build(); - Assert.assertNotNull(cluster); - Assert.assertEquals("(2)Should be 1 namenodes", 1, cluster.getNumNameNodes()); - // add a node - cluster.addNameNode(conf, 0); - Assert.assertEquals("(2)Should be 2 namenodes", 2, cluster.getNumNameNodes()); - cluster.shutdown(); + try { + Assert.assertNotNull(cluster); + cluster.waitActive(); + Assert.assertEquals("(2)Should be 1 namenodes", 1, cluster.getNumNameNodes()); + + // add a node + cluster.addNameNode(conf, 0); + Assert.assertEquals("(2)Should be 2 namenodes", 2, cluster.getNumNameNodes()); + } catch (IOException ioe) { + Assert.fail("Failed to add NN to cluster:" + StringUtils.stringifyException(ioe)); + } finally { + cluster.shutdown(); + } // 3. start non-federated conf = new HdfsConfiguration(); cluster = new MiniDFSCluster.Builder(conf).build(); - Assert.assertNotNull(cluster); - Assert.assertEquals("(2)Should be 1 namenodes", 1, cluster.getNumNameNodes()); // add a node try { + cluster.waitActive(); + Assert.assertNotNull(cluster); + Assert.assertEquals("(2)Should be 1 namenodes", 1, cluster.getNumNameNodes()); + cluster.addNameNode(conf, 9929); Assert.fail("shouldn't be able to add another NN to non federated cluster"); } catch (IOException e) { @@ -268,6 +283,4 @@ public class TestDataNodeMultipleRegistrations { cluster.shutdown(); } } - - }