[ https://issues.apache.org/jira/browse/HDFS-1189?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12881927#action_12881927 ]
Tsz Wo (Nicholas), SZE commented on HDFS-1189: ---------------------------------------------- Hi Xiao, thanks for reporting this and providing a patch. Some comments on the patch: - The following will get an array index exception when the inode is root. {code} + INodeDirectory parent = (INodeDirectory)inodes[inodes.length-2]; {code} - Need new unit tests. > Quota counts missed between clear quota and set quota > ----------------------------------------------------- > > Key: HDFS-1189 > URL: https://issues.apache.org/jira/browse/HDFS-1189 > Project: Hadoop HDFS > Issue Type: Bug > Components: name-node > Affects Versions: 0.20.2, 0.22.0 > Reporter: Xiao Kang > Attachments: HDFS-1189.patch > > > HDFS Quota counts will be missed between a clear quota operation and a set > quota. > When setting quota for a dir, the INodeDirectory will be replaced by > INodeDirectoryWithQuota and dir.isQuotaSet() becomes true. When > INodeDirectoryWithQuota is newly created, quota counting will be performed. > However, when clearing quota, the quota conf is set to -1 and > dir.isQuotaSet() becomes false while INodeDirectoryWithQuota will NOT be > replaced back to INodeDirectory. > FSDirectory.updateCount just update the quota count for inodes that > isQuotaSet() is true. So after clear quota for a dir, its quota counts will > not be updated and it's reasonable. But when re seting quota for this dir, > quota counting will not be performed and some counts will be missed. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.