[
https://issues.apache.org/jira/browse/HDFS-4351?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrew Wang updated HDFS-4351:
------------------------------
Attachment: hdfs-4351-3.patch
Thanks for the review Jing! I addressed your comment on the test case in this
version of the patch; good catch.
Regarding {{numOfReplicas}}, my reading is that it's the # of additional nodes
that need to be added to the results list. I inferred this since
{{totalReplicasExpected}} should be constant, and is set to {{numOfReplicas +
results.size()}} in {{chooseTarget()}}.
> Fix BlockPlacementPolicyDefault#chooseTarget when avoiding stale nodes
> ----------------------------------------------------------------------
>
> Key: HDFS-4351
> URL: https://issues.apache.org/jira/browse/HDFS-4351
> Project: Hadoop HDFS
> Issue Type: Bug
> Affects Versions: 3.0.0
> Reporter: Andrew Wang
> Assignee: Andrew Wang
> Attachments: hdfs-4351-2.patch, hdfs-4351-3.patch, hdfs-4351.patch
>
>
> There's a bug in {{BlockPlacementPolicyDefault#chooseTarget}} with stale node
> avoidance enabled (HDFS-3912). If a NotEnoughReplicasException is thrown in
> the call to {{chooseRandom()}}, {{numOfReplicas}} is not updated together
> with the partial result in {{result}} since it is pass by value. The retry
> call to {{chooseTarget}} then uses this incorrect value.
> This can be seen if you enable stale node detection for
> {{TestReplicationPolicy#testChooseTargetWithMoreThanAvaiableNodes()}}.
--
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