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

surendra singh lilhore commented on HDFS-8143:
----------------------------------------------

Thanks [~szetszwo] for reviewing. Attached new patch, please review.

bq. If the mover exit due to failure, it should exit with an error state like 
balancer.

Mover is already handling this..

{code}
 try {
        final Map<URI, List<Path>> map = getNameNodePathsToMove(conf, args);
        return Mover.run(map, conf);
      } catch (IOException e) {
        System.out.println(e + ".  Exiting ...");
        return ExitStatus.IO_EXCEPTION.getExitCode();
      } catch (InterruptedException e) {
        System.out.println(e + ".  Exiting ...");
        return ExitStatus.INTERRUPTED.getExitCode();
      } catch (ParseException e) {
        System.out.println(e + ".  Exiting ...");
        return ExitStatus.ILLEGAL_ARGUMENTS.getExitCode();
     } catch (IllegalArgumentException e) {
        System.out.println(e + ".  Exiting ...");
        return ExitStatus.ILLEGAL_ARGUMENTS.getExitCode();
     } finally {
        System.out.format("%-24s ", DateFormat.getDateTimeInstance().format(new 
Date()));
        System.out.println("Mover took " + 
StringUtils.formatTime(Time.monotonicNow()-startTime));
     }
{code}

Other comment fixed in new patch....
 

> HDFS Mover tool should exit after some retry when failed to move blocks.
> ------------------------------------------------------------------------
>
>                 Key: HDFS-8143
>                 URL: https://issues.apache.org/jira/browse/HDFS-8143
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: balancer & mover
>    Affects Versions: 2.6.0
>            Reporter: surendra singh lilhore
>            Assignee: surendra singh lilhore
>            Priority: Blocker
>         Attachments: HDFS-8143.patch, HDFS-8143_1.patch
>
>
> Mover is not coming out in case of failed to move blocks.
> {code}
> hasRemaining |= Dispatcher.waitForMoveCompletion(storages.targets.values());
> {code}
> {{Dispatcher.waitForMoveCompletion()}} will always return true if some blocks 
> migration failed. So hasRemaining never become false.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to