You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by el...@apache.org on 2012/03/22 23:48:23 UTC
svn commit: r1304119 - in
/hadoop/common/branches/branch-0.23/hadoop-common-project: ./ hadoop-auth/
hadoop-common/ hadoop-common/src/main/docs/ hadoop-common/src/main/java/
hadoop-common/src/main/java/org/apache/hadoop/net/
hadoop-common/src/test/core/
Author: eli
Date: Thu Mar 22 22:48:21 2012
New Revision: 1304119
URL: http://svn.apache.org/viewvc?rev=1304119&view=rev
Log:
HADOOP-8159. svn merge -c 1304118 from trunk
Modified:
hadoop/common/branches/branch-0.23/hadoop-common-project/ (props changed)
hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-auth/ (props changed)
hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/ (props changed)
hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt (contents, props changed)
hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/docs/ (props changed)
hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/ (props changed)
hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java
hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/test/core/ (props changed)
Propchange: hadoop/common/branches/branch-0.23/hadoop-common-project/
------------------------------------------------------------------------------
Merged /hadoop/common/trunk/hadoop-common-project:r1304118
Propchange: hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-auth/
------------------------------------------------------------------------------
Merged /hadoop/common/trunk/hadoop-common-project/hadoop-auth:r1304118
Propchange: hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/
------------------------------------------------------------------------------
Merged /hadoop/common/trunk/hadoop-common-project/hadoop-common:r1304118
Modified: hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt?rev=1304119&r1=1304118&r2=1304119&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt (original)
+++ hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt Thu Mar 22 22:48:21 2012
@@ -156,6 +156,9 @@ Release 0.23.3 - UNRELEASED
HADOOP-8197. Configuration logs WARNs on every use of a deprecated key (tucu)
+ HADOOP-8159. NetworkTopology: getLeaf should check for invalid topologies.
+ (Colin Patrick McCabe via eli)
+
BREAKDOWN OF HADOOP-7454 SUBTASKS
HADOOP-7455. HA: Introduce HA Service Protocol Interface. (suresh)
Propchange: hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt
------------------------------------------------------------------------------
Merged /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt:r1304118
Propchange: hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/docs/
------------------------------------------------------------------------------
Merged /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/docs:r1304118
Propchange: hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/
------------------------------------------------------------------------------
Merged /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java:r1304118
Modified: hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java?rev=1304119&r1=1304118&r2=1304119&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java Thu Mar 22 22:48:21 2012
@@ -45,6 +45,13 @@ public class NetworkTopology {
public static final Log LOG =
LogFactory.getLog(NetworkTopology.class);
+ public static class InvalidTopologyException extends RuntimeException {
+ private static final long serialVersionUID = 1L;
+ public InvalidTopologyException(String msg) {
+ super(msg);
+ }
+ }
+
/** InnerNode represents a switch/router of a data center or rack.
* Different from a leaf node, it has non-null children.
*/
@@ -311,6 +318,8 @@ public class NetworkTopology {
* the root cluster map
*/
InnerNode clusterMap = new InnerNode(InnerNode.ROOT);
+ /** Depth of all leaf nodes */
+ private int depthOfAllLeaves = -1;
/** rack counter */
private int numOfRacks = 0;
/** the lock used to manage access */
@@ -328,6 +337,7 @@ public class NetworkTopology {
*/
public void add(Node node) {
if (node==null) return;
+ String oldTopoStr = this.toString();
if( node instanceof InnerNode ) {
throw new IllegalArgumentException(
"Not allow to add an inner node: "+NodeBase.getPath(node));
@@ -345,6 +355,19 @@ public class NetworkTopology {
if (rack == null) {
numOfRacks++;
}
+ if (!(node instanceof InnerNode)) {
+ if (depthOfAllLeaves == -1) {
+ depthOfAllLeaves = node.getLevel();
+ } else {
+ if (depthOfAllLeaves != node.getLevel()) {
+ LOG.error("Error: can't add leaf node at depth " +
+ node.getLevel() + " to topology:\n" + oldTopoStr);
+ throw new InvalidTopologyException("Invalid network topology. " +
+ "You cannot have a rack and a non-rack node at the same " +
+ "level of the network topology.");
+ }
+ }
+ }
}
if(LOG.isDebugEnabled()) {
LOG.debug("NetworkTopology became:\n" + this.toString());
Propchange: hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/test/core/
------------------------------------------------------------------------------
Merged /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/core:r1304118