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