[
https://issues.apache.org/jira/browse/HDFS-8540?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14576979#comment-14576979
]
Vinayakumar B commented on HDFS-8540:
-------------------------------------
Thanks [~surendrasingh] for the patch.
Idea looks good.
Instead of creating separate instances of Result everytime while processing
recursively, why dont use Only one instance thoughout and update the same
result? Anyway you are updating the current result always with the returned
result.
> Mover should exit with NO_MOVE_BLOCK if no block can be moved
> -------------------------------------------------------------
>
> Key: HDFS-8540
> URL: https://issues.apache.org/jira/browse/HDFS-8540
> Project: Hadoop HDFS
> Issue Type: Sub-task
> Components: balancer & mover
> Reporter: Tsz Wo Nicholas Sze
> Assignee: surendra singh lilhore
> Attachments: HDFS-8540.patch
>
>
> When there are files not satisfying their storage policy and no move is
> possible, Mover exits with SUCCESS. It should exit with NO_MOVE_BLOCK.
> The bug seems in the following code. When StorageTypeDiff is not empty and
> scheduleMoves4Block return false, it does not update hasRemaining. Also,
> there is no indication of "No block can be moved" for the entire iteration.
> {code}
> //Mover.processFile(..)
> if (!diff.removeOverlap(true)) {
> if (scheduleMoves4Block(diff, lb, ecSchema)) {
> hasRemaining |= (diff.existing.size() > 1 &&
> diff.expected.size() > 1);
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)