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

Jing Zhao commented on HDFS-4967:
---------------------------------

Hi Fengdong,

   After your hacking 
{code}
+    SEQUENTIAL_BLOCK_ID(-43, -43, "Allocate block IDs sequentially and store " 
+
+        "block IDs in the edits log and image files", false);
{code}

   when loading your old fsimage, the code below will be executed (in 
FSImageFormat#load):
{code}
   if (LayoutVersion.supports(Feature.SEQUENTIAL_BLOCK_ID, imgVersion)) {
     // read the starting generation stamp for sequential block IDs
     genstamp = in.readLong();
{code}

   and actually in your old fsimage, there is no such a long value written in 
your fsimage. And this causes the error you saw.
                
> Generate block ID sequentially cannot work with QJM HA
> ------------------------------------------------------
>
>                 Key: HDFS-4967
>                 URL: https://issues.apache.org/jira/browse/HDFS-4967
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: ha, hdfs-client, namenode
>    Affects Versions: 3.0.0
>            Reporter: Fengdong Yu
>            Assignee: Arpit Agarwal
>
> There are two name nodes, one is active, another acts as standby name node. 
> QJM Ha  configured.
> After HDFS-4645 committed in the trunk, then the following error showed 
> during name node start:
> {code}
> 2013-07-09 11:28:45,394 FATAL 
> org.apache.hadoop.hdfs.server.namenode.NameNode: Exception in namenode join
> java.lang.IllegalStateException: Cannot skip to less than the current value 
> (=1073741824), where newValue=0
>         at 
> org.apache.hadoop.util.SequentialNumber.skipTo(SequentialNumber.java:58)
>         at 
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.setLastAllocatedBlockId(FSNamesystem.java:5124)
>         at 
> org.apache.hadoop.hdfs.server.namenode.FSImageFormat$Loader.load(FSImageFormat.java:278)
>         at 
> org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:809)
>         at 
> org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:798)
>         at 
> org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImageFile(FSImage.java:653)
>         at 
> org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:623)
>         at 
> org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:260)
>         at 
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:719)
>         at 
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:552)
>         at 
> org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:401)
>         at 
> org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:435)
>         at 
> org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:607)
>         at 
> org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:592)
>         at 
> org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1172)
>         at 
> org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1238)
> 2013-07-09 11:28:45,397 INFO org.apache.hadoop.util.ExitUtil: Exiting with 
> status 1
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to