[ 
https://issues.apache.org/jira/browse/HADOOP-4771?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12653390#action_12653390
 ] 

Konstantin Shvachko commented on HADOOP-4771:
---------------------------------------------

I think the problem is that constructors of {{INodeDirectoryWithQuota}} do not 
initialize the {{nsCount}} member, which incorrectly sets its value to 0. So ti 
should be explicitly set to 1 in all the constructors. 
{{updateCountForINodeWithQuota()}} is relevant when you really update something 
in the the subtree.

> 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
>            Assignee: Ruyue Ma
>             Fix For: 0.19.1, 0.20.0
>
>         Attachments: hadoop-4771.patch
>
>
> 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 not 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