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 as...@apache.org on 2016/02/11 08:59:41 UTC
[07/50] hadoop git commit: HADOOP-12772.
NetworkTopologyWithNodeGroup.getNodeGroup() can loop infinitely for invalid
'loc' values. Contributed by Kuhu Shukla.
HADOOP-12772. NetworkTopologyWithNodeGroup.getNodeGroup() can loop infinitely for invalid 'loc' values. Contributed by Kuhu Shukla.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/49e176c2
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/49e176c2
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/49e176c2
Branch: refs/heads/yarn-2877
Commit: 49e176c29f95c179c0f6b07d4d582e6a771a96bd
Parents: 9086dd5
Author: Kihwal Lee <ki...@apache.org>
Authored: Fri Feb 5 15:46:25 2016 -0600
Committer: Kihwal Lee <ki...@apache.org>
Committed: Fri Feb 5 15:47:14 2016 -0600
----------------------------------------------------------------------
hadoop-common-project/hadoop-common/CHANGES.txt | 3 +++
.../hadoop/net/NetworkTopologyWithNodeGroup.java | 7 ++++++-
.../main/java/org/apache/hadoop/net/NodeBase.java | 9 ++++++++-
.../hadoop/net/TestNetworkTopologyWithNodeGroup.java | 15 ++++++++++++++-
4 files changed, 31 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/49e176c2/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 b1514d7..13568e2 100644
--- a/hadoop-common-project/hadoop-common/CHANGES.txt
+++ b/hadoop-common-project/hadoop-common/CHANGES.txt
@@ -1718,6 +1718,9 @@ Release 2.7.3 - UNRELEASED
HADOOP-12761. incremental maven build is not really incremental (sjlee)
+ HADOOP-12772. NetworkTopologyWithNodeGroup.getNodeGroup() can loop
+ infinitely for invalid 'loc' values (Kuhu Shukla via kihwal)
+
Release 2.7.2 - 2016-01-25
INCOMPATIBLE CHANGES
http://git-wip-us.apache.org/repos/asf/hadoop/blob/49e176c2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopologyWithNodeGroup.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopologyWithNodeGroup.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopologyWithNodeGroup.java
index 72031aa..8ebe846 100644
--- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopologyWithNodeGroup.java
+++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopologyWithNodeGroup.java
@@ -101,7 +101,12 @@ public class NetworkTopologyWithNodeGroup extends NetworkTopology {
return null;
} else {
// may be a leaf node
- return getNodeGroup(node.getNetworkLocation());
+ if(!(node.getNetworkLocation() == null ||
+ node.getNetworkLocation().isEmpty())) {
+ return getNodeGroup(node.getNetworkLocation());
+ } else {
+ return NodeBase.ROOT;
+ }
}
} else {
// not in cluster map, don't handle it
http://git-wip-us.apache.org/repos/asf/hadoop/blob/49e176c2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NodeBase.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NodeBase.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NodeBase.java
index 9f40eea..b136297 100644
--- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NodeBase.java
+++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NodeBase.java
@@ -127,7 +127,14 @@ public class NodeBase implements Node {
* is not {@link #PATH_SEPARATOR}
*/
public static String normalize(String path) {
- if (path == null || path.length() == 0) return ROOT;
+ if (path == null) {
+ throw new IllegalArgumentException(
+ "Network Location is null ");
+ }
+
+ if (path.length() == 0) {
+ return ROOT;
+ }
if (path.charAt(0) != PATH_SEPARATOR) {
throw new IllegalArgumentException(
http://git-wip-us.apache.org/repos/asf/hadoop/blob/49e176c2/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestNetworkTopologyWithNodeGroup.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestNetworkTopologyWithNodeGroup.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestNetworkTopologyWithNodeGroup.java
index 15bd9fe..c2c528a 100644
--- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestNetworkTopologyWithNodeGroup.java
+++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestNetworkTopologyWithNodeGroup.java
@@ -178,7 +178,20 @@ public class TestNetworkTopologyWithNodeGroup {
assertTrue(frequency.get(key) > 0 || key == dataNodes[0]);
}
}
-
+
+ @Test
+ public void testNodeGroup() throws Exception {
+ String res = cluster.getNodeGroup("");
+ assertTrue("NodeGroup should be NodeBase.ROOT for empty location",
+ res.equals(NodeBase.ROOT));
+ try {
+ cluster.getNodeGroup(null);
+ } catch (IllegalArgumentException e) {
+ assertTrue("Null Network Location should throw exception!",
+ e.getMessage().contains("Network Location is null"));
+ }
+ }
+
/**
* This test checks that adding a node with invalid topology will be failed
* with an exception to show topology is invalid.