[ https://issues.apache.org/jira/browse/HDFS-4975?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13705186#comment-13705186 ]
Xi Fang commented on HDFS-4975: ------------------------------- The subclasses weren't updated in my first patch. Because the old methods are called so many times, I added them back to BlockPlacementPolicyDefault.java. They call the new APIs (i.e. the methods with parameter "boolean avoidStaleNodes") and pass "avoidStaleNodes = false". > Branch-1-win TestReplicationPolicy failed caused by stale data node handling > ---------------------------------------------------------------------------- > > Key: HDFS-4975 > URL: https://issues.apache.org/jira/browse/HDFS-4975 > Project: Hadoop HDFS > Issue Type: Bug > Affects Versions: 1-win > Reporter: Xi Fang > Assignee: Xi Fang > Fix For: 1-win > > Attachments: HADOOP-9714.1.patch, HDFS-4975.2.patch > > > TestReplicationPolicy failed on > * testChooseTargetWithMoreThanAvailableNodes() > * testChooseTargetWithStaleNodes() > * testChooseTargetWithHalfStaleNodes() > The root of cause of testChooseTargetWithMoreThanAvailableNodes failing is > the following: > In BlockPlacementPolicyDefault#chooseTarget() > {code} > chooseRandom(numOfReplicas, NodeBase.ROOT, excludedNodes, > blocksize, maxNodesPerRack, results); > } catch (NotEnoughReplicasException e) { > FSNamesystem.LOG.warn("Not able to place enough replicas, still in need > of " + numOfReplicas); > {code} > However, numOfReplicas is passed into chooseRandom() as int (primitive type > in java) by value. The updating operation for numOfReplicas in chooseRandom() > will not change the value in chooseTarget(). > The root cause for testChooseTargetWithStaleNodes() and > testChooseTargetWithHalfStaleNodes() is the current > BlockPlacementPolicyDefault#chooseTarget() doesn't check if a node is stale. -- 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