[ 
https://issues.apache.org/jira/browse/HDDS-2199?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated HDDS-2199:
---------------------------------
    Labels: pull-request-available  (was: )

> In SCMNodeManager dnsToUuidMap cannot track multiple DNs on the same host
> -------------------------------------------------------------------------
>
>                 Key: HDDS-2199
>                 URL: https://issues.apache.org/jira/browse/HDDS-2199
>             Project: Hadoop Distributed Data Store
>          Issue Type: Bug
>    Affects Versions: 0.5.0
>            Reporter: Stephen O'Donnell
>            Assignee: Stephen O'Donnell
>            Priority: Major
>              Labels: pull-request-available
>
> Often in test clusters and tests, we start multiple datanodes on the same 
> host.
> In SCMNodeManager.register() there is a map of hostname -> datanode UUID 
> called dnsToUuidMap.
> If several DNs register from the same host, the entry in the map will be 
> overwritten and the last DN to register will 'win'.
> This means that the method getNodeByAddress() does not return the correct 
> DatanodeDetails object when many hosts are registered from the same address.
> This method is only used in SCMBlockProtocolServer.sortDatanodes() to allow 
> it to see if one of the nodes matches the client, but it need to be used by 
> the Decommission code.
> Perhaps we could change the getNodeByAddress() method to returns a list of 
> DNs? In normal production clusters, there should only be one returned, but in 
> test clusters, there may be many. Any code looking for a specific DN entry 
> would need to iterate the list and match on the port number too, as host:port 
> would be the unique definition of a datanode.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to