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);
