[ 
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

Reply via email to