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

Reply via email to