[
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)