diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index 1ff04f8d7c..83d53cbcc7 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -282,6 +282,9 @@ Release 0.23.3 - UNRELEASED HADOOP-8159. NetworkTopology: getLeaf should check for invalid topologies. (Colin Patrick McCabe via eli) + HDFS-3129. NetworkTopology: add test that getLeaf should check for + invalid topologies (Colin Patrick McCabe via eli) + HADOOP-8204. TestHealthMonitor fails occasionally (todd) BREAKDOWN OF HADOOP-7454 SUBTASKS diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/net/TestNetworkTopology.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/net/TestNetworkTopology.java index 9d755a7643..5a4643f410 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/net/TestNetworkTopology.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/net/TestNetworkTopology.java @@ -58,6 +58,25 @@ public void testNumOfChildren() throws Exception { assertEquals(cluster.getNumOfLeaves(), dataNodes.length); } + public void testCreateInvalidTopology() throws Exception { + NetworkTopology invalCluster = new NetworkTopology(); + DatanodeDescriptor invalDataNodes[] = new DatanodeDescriptor[] { + new DatanodeDescriptor(new DatanodeID("h1:5020"), "/d1/r1"), + new DatanodeDescriptor(new DatanodeID("h2:5020"), "/d1/r1"), + new DatanodeDescriptor(new DatanodeID("h3:5020"), "/d1") + }; + invalCluster.add(invalDataNodes[0]); + invalCluster.add(invalDataNodes[1]); + try { + invalCluster.add(invalDataNodes[2]); + fail("expected InvalidTopologyException"); + } catch (NetworkTopology.InvalidTopologyException e) { + assertEquals(e.getMessage(), "Invalid network topology. " + + "You cannot have a rack and a non-rack node at the same " + + "level of the network topology."); + } + } + public void testRacks() throws Exception { assertEquals(cluster.getNumOfRacks(), 3); assertTrue(cluster.isOnSameRack(dataNodes[0], dataNodes[1]));