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

Kihwal Lee commented on HDFS-5526:
----------------------------------

What about adding the following in the beginning of 
{{DataStorage.doRollback()}}? This is similar to what is in 
{{DataStorage.doUpgrade()}}. Since the VERSION file is not read yet in rollback 
(if it does it blows up as you reported), {{this.layoutVersion}} will be 0. So 
instead, it is checking the software layout version and see whether it is using 
the same layout version as the name node.

{code}
    if (LayoutVersion.supports(Feature.FEDERATION, HdfsConstants.LAYOUT_VERSION)
        && HdfsConstants.LAYOUT_VERSION == nsInfo.getLayoutVersion()) {
      clusterID = nsInfo.getClusterID();
      layoutVersion = nsInfo.getLayoutVersion();
      writeProperties(sd);
      return;
    }
{code}

> Datanode cannot roll back to previous layout version
> ----------------------------------------------------
>
>                 Key: HDFS-5526
>                 URL: https://issues.apache.org/jira/browse/HDFS-5526
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: datanode
>            Reporter: Tsz Wo (Nicholas), SZE
>            Priority: Blocker
>
> Current trunk layout version is -48.
> Hadoop v2.2.0 layout version is -47.
> If a cluster is upgraded from v2.2.0 (-47) to trunk (-48), the datanodes 
> cannot start with -rollback.  It will fail with IncorrectVersionException.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to