MaWenJin created HDFS-4450:
------------------------------
Summary: Duplicate data node on the name node after formatting
data node
Key: HDFS-4450
URL: https://issues.apache.org/jira/browse/HDFS-4450
Project: Hadoop HDFS
Issue Type: Bug
Components: namenode
Affects Versions: 2.0.2-alpha
Reporter: MaWenJin
Duplicate data node on the name node after formatting data node。
When we registered data node,use nodeReg.getXferPort() to find
DatanodeDescriptor.
{code}
DatanodeDescriptor nodeN = host2DatanodeMap.getDatanodeByXferAddr(
nodeReg.getIpAddr(), nodeReg.getXferPort());
{code}
but add data node use node.getIpAddr().
{code}
/** add node to the map
* return true if the node is added; false otherwise.
*/
boolean add(DatanodeDescriptor node) {
hostmapLock.writeLock().lock();
try {
if (node==null || contains(node)) {
return false;
}
String ipAddr = node.getIpAddr();
DatanodeDescriptor[] nodes = map.get(ipAddr);
DatanodeDescriptor[] newNodes;
if (nodes==null) {
newNodes = new DatanodeDescriptor[1];
newNodes[0]=node;
} else { // rare case: more than one datanode on the host
newNodes = new DatanodeDescriptor[nodes.length+1];
System.arraycopy(nodes, 0, newNodes, 0, nodes.length);
newNodes[nodes.length] = node;
}
map.put(ipAddr, newNodes);
return true;
} finally {
hostmapLock.writeLock().unlock();
}
}
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira