Repository: hadoop
Updated Branches:
  refs/heads/branch-2 ca11ffa5d -> 5e7deba1f


HADOOP-10953. NetworkTopology#add calls NetworkTopology#toString without 
holding the netlock (Liang Xie via Colin P. McCabe)

(cherry picked from commit 6338ce3ae8870548cac5abe2f685748b5efb13c1)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/5e7deba1
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/5e7deba1
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/5e7deba1

Branch: refs/heads/branch-2
Commit: 5e7deba1f4e73d15f15320e317d7c4be21b783b3
Parents: ca11ffa
Author: Colin Patrick Mccabe <[email protected]>
Authored: Tue Feb 10 13:24:40 2015 -0800
Committer: Colin Patrick Mccabe <[email protected]>
Committed: Tue Feb 10 13:30:49 2015 -0800

----------------------------------------------------------------------
 hadoop-common-project/hadoop-common/CHANGES.txt           |  3 +++
 .../main/java/org/apache/hadoop/net/NetworkTopology.java  | 10 +++++-----
 2 files changed, 8 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/5e7deba1/hadoop-common-project/hadoop-common/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt 
b/hadoop-common-project/hadoop-common/CHANGES.txt
index fec5613..3a19676 100644
--- a/hadoop-common-project/hadoop-common/CHANGES.txt
+++ b/hadoop-common-project/hadoop-common/CHANGES.txt
@@ -508,6 +508,9 @@ Release 2.7.0 - UNRELEASED
     HADOOP-11535 TableMapping related tests failed due to 'successful'
     resolving of invalid test hostname. (Kai Zheng via stevel)
 
+    HADOOP-10953. NetworkTopology#add calls NetworkTopology#toString without
+    holding the netlock (Liang Xie via Colin P. McCabe)
+
 Release 2.6.1 - UNRELEASED
 
   INCOMPATIBLE CHANGES

http://git-wip-us.apache.org/repos/asf/hadoop/blob/5e7deba1/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java
----------------------------------------------------------------------
diff --git 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java
 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java
index 02b0005..b729bda 100644
--- 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java
+++ 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java
@@ -394,14 +394,14 @@ 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));
-    }
     int newDepth = NodeBase.locationToDepth(node.getNetworkLocation()) + 1;
     netlock.writeLock().lock();
     try {
+      String oldTopoStr = this.toString();
+      if( node instanceof InnerNode ) {
+        throw new IllegalArgumentException(
+          "Not allow to add an inner node: "+NodeBase.getPath(node));
+      }
       if ((depthOfAllLeaves != -1) && (depthOfAllLeaves != newDepth)) {
         LOG.error("Error: can't add leaf node " + NodeBase.getPath(node) +
             " at depth " + newDepth + " to topology:\n" + oldTopoStr);

Reply via email to