[ 
https://issues.apache.org/jira/browse/HDFS-15439?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17178209#comment-17178209
 ] 

Ayush Saxena commented on HDFS-15439:
-------------------------------------

Thanx [~AMC-team] for the update.
The changes are straightforward, just a sanity check, The checkstyle is due to 
line length, seems can't be fixed.
+1

> Setting dfs.mover.retry.max.attempts to negative value will retry forever.
> --------------------------------------------------------------------------
>
>                 Key: HDFS-15439
>                 URL: https://issues.apache.org/jira/browse/HDFS-15439
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: balancer & mover
>            Reporter: AMC-team
>            Assignee: AMC-team
>            Priority: Major
>         Attachments: HDFS-15439.000.patch, HDFS-15439.001.patch, 
> HDFS-15439.002.patch
>
>
> Configuration parameter "dfs.mover.retry.max.attempts" is to define the 
> maximum number of retries before the mover consider the move failed. There is 
> no checking code so this parameter can accept any int value.
> Theoratically, setting this value to <=0 should mean that no retry at all. 
> However, if you set the value to negative value. The checking condition for 
> retry failed will never satisfied because the if statement is "*if 
> (retryCount.get() == retryMaxAttempts)*". The retry count will always +1 by 
> retryCount.incrementAndGet() after failed but never *=* *retryMaxAttempts.* 
> {code:java}
> private Result processNamespace() throws IOException {
>       ... //wait for pending move to finish and retry the failed migration
>       if (hasFailed && !hasSuccess) {
>         if (retryCount.get() == retryMaxAttempts) {
>           result.setRetryFailed();
>           LOG.error("Failed to move some block's after "
>               + retryMaxAttempts + " retries.");
>           return result;
>         } else {
>           retryCount.incrementAndGet();
>         }
>       } else {
>         // Reset retry count if no failure.
>         retryCount.set(0);
>       }
>       ...
>     }
> {code}
> *How to fix*
> Add checking code of "dfs.mover.retry.max.attempts" to accept only 
> non-negative value or change the if statement condition when retry count 
> exceeds max attempts.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to