You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-issues@hadoop.apache.org by "Chris Nauroth (JIRA)" <ji...@apache.org> on 2014/01/30 00:04:09 UTC
[jira] [Updated] (HDFS-5614) NameNode: implement handling of ACLs
in combination with snapshots.
[ https://issues.apache.org/jira/browse/HDFS-5614?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chris Nauroth updated HDFS-5614:
--------------------------------
Attachment: HDFS-5614.1.patch
I'm uploading the patch. Here is a summary of the changes.
# {{DFSClient}}: Testing revealed that we weren't unwrapping {{NSQuotaExceededException}} in the ACL modification APIs. This exception can be thrown when changing an ACL on a file that is a child of a directory that was previously snapshotted, because the change requires consuming more namespace quota.
# {{AclFeature}}: I made instances of this class immutable. This fixed a lot of bugs related to copying the instance around inside a snapshot and then mutating the original through the ACL modification APIs.
# {{AclStorage}}: Calls to inode methods for getting and setting the ACL now pass snapshot ID.
# {{FSDirectory}}: Added special case handling for ".snapshot" path and changed {{getAclStatus}} to get the correct snapshot ID.
# {{FSImageFormat}}/{{FSImageSerialization}}: The current ACL is now written in snapshot diff lists and restored into the {{SnapshotCopy}} on load.
# {{INode}} and subclasses and related interfaces: Previously, we had the methods for getting and setting the {{AclFeature}} in {{INodeWithAdditionalFields}}. I've now made the necessary changes throughout the inode class hierarchy to define these methods in the {{INode}} base class and return the correct results in subclasses.
# {{INodeDirectory}}: I added a special case in the copy constructor to preserve the ACL even if we aren't copying the other inode features.
# {{TestNameNodeAcl}}: New test suite covering the various interactions between ACLs and snapshots.
# I cleaned up multiple places in the code in {{FSDirectory}}, {{FSPermissionChecker}} and {{AclStorage}} that previously had been downcasting to {{INodeWithAdditionalFields}}.
I've also verified that other ACL tests in the branch are still passing with this patch.
> NameNode: implement handling of ACLs in combination with snapshots.
> -------------------------------------------------------------------
>
> Key: HDFS-5614
> URL: https://issues.apache.org/jira/browse/HDFS-5614
> Project: Hadoop HDFS
> Issue Type: Sub-task
> Components: namenode
> Affects Versions: HDFS ACLs (HDFS-4685)
> Reporter: Chris Nauroth
> Assignee: Chris Nauroth
> Attachments: HDFS-5614.1.patch
>
>
> Within a snapshot, all ACLs are frozen at the moment that the snapshot was created. ACL changes in the parent of the snapshot are not applied to the snapshot.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)