FSImage saveFSImage() will have problem.
----------------------------------------

                 Key: HADOOP-4771
                 URL: https://issues.apache.org/jira/browse/HADOOP-4771
             Project: Hadoop Core
          Issue Type: Bug
          Components: dfs
    Affects Versions: 0.19.0, 0.19.1, 0.20.0
            Reporter: Ruyue Ma
             Fix For: 0.19.1, 0.20.0


Now the directory doesn't have replication factor. so in FSImage.saveFsImage().

When you format the namenode , hadoop will call FSImage.saveFsImage(). 
saveFsImage includes the following code:

out.writeLong(fsDir.rootDir.numItemsInTree());

When format, the fsDir.rootDir.numItemsInTree() should be 1 (it include the 
rootdir). But now fsDir.rootDir.numItemsInTree() is 0. 

The reason why the bug is not simply discovered or triggered is the code in  
FSImage.saveFsImage().->saveINode2Image().

    } else {   // write directory inode
      out.writeShort(0);  // replication

Because  the directory doesn't have replication factor, so  here is 0. This 
will cause loadFilesUnderConstruction() will load any files when hadoop fisrt 
starts up after format.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to