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

Konstantin Shvachko commented on HDFS-1969:
-------------------------------------------

Todd, what I meant is that {{NNStorage.setFields()}} should not contain the if 
statement
{code}
if (layoutVersion <= -26) {
...
}
{code}
I actually don't see where it is triggered.
In general, we can allow these ifs in the loading part of the code, like 
loadFSImage(). But the saving part should be free of dependencies on the layout 
version, because there is only one LV - the current one.

The precondition sounds good. But it would be better to just convert it to 
assert. I don't think we've used {{com.google.*}} before at least not in HDFS. 
Why introduce it now.

> Running rollback on new-version namenode destroys namespace
> -----------------------------------------------------------
>
>                 Key: HDFS-1969
>                 URL: https://issues.apache.org/jira/browse/HDFS-1969
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: name-node
>    Affects Versions: 0.22.0
>            Reporter: Todd Lipcon
>            Assignee: Todd Lipcon
>            Priority: Blocker
>             Fix For: 0.22.0
>
>         Attachments: hdfs-1969.txt, hdfs-1969.txt
>
>
> The following sequence leaves the namespace in an inconsistent/broken state:
> - format NN using 0.20 (or any prior release, probably)
> - run hdfs namenode -upgrade on 0.22. ^C the NN once it comes up.
> - run hdfs namenode -rollback on 0.22  (this should fail but doesn't!)
> This leaves the name directory in a state such that the version file claims 
> it's an 0.20 namespace, but the fsimage is in 0.22 format. It then crashes 
> when trying to start up.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to