[ https://issues.apache.org/jira/browse/HDFS-6995?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14141883#comment-14141883 ]
Vinayakumar B commented on HDFS-6995: ------------------------------------- Hi [~umamaheswararao], thanks for reviewing. Scenario mentioned is very much possible. It was throwing NPE because, target selection was happened even though there was no node with "/default-rack". This is because, {{clusterMap.countNumOfAvailableNodes( scope, excludedNodes)}} was returning 1, for the scope of "/default-rack", it should return 0 as no nodes available with "/default-rack". I have posted a patch for the same in HADOOP-10131, along with one more scenario where {{NetworkTopology#countNumOfAvailableNodes(..)}} was returning wrong value. Till now this API was not called as writer was considered as null if no DN exists in clients machine. Please review HADOOP-10131 patch, once thats in, then a remote rack will be chosen in the above mentioned case. > Block should be placed in the client's 'rack-local' node if 'client-local' > node is not available > ------------------------------------------------------------------------------------------------ > > Key: HDFS-6995 > URL: https://issues.apache.org/jira/browse/HDFS-6995 > Project: Hadoop HDFS > Issue Type: Bug > Components: namenode > Affects Versions: 2.5.0 > Reporter: Vinayakumar B > Assignee: Vinayakumar B > Attachments: HDFS-6995-001.patch, HDFS-6995-002.patch, > HDFS-6995-003.patch, HDFS-6995-004.patch > > > HDFS cluster is rack aware. > Client is in different node than of datanode, > but Same rack contains one or more datanodes. > In this case first preference should be given to select 'rack-local' node. > Currently, since no Node in clusterMap corresponds to client's location, > blockplacement policy choosing a *random* node as local node and proceeding > for further placements. -- This message was sent by Atlassian JIRA (v6.3.4#6332)