[ 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)