[ https://issues.apache.org/jira/browse/HDFS-6326?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chris Nauroth updated HDFS-6326: -------------------------------- Attachment: HDFS-6326.3.patch I'm attaching patch version 3. This takes the approach of hiding the actual ACL bit from {{FsPermission}} serialization/deserialization. This definitely hides it from clients looking directly at the permission bits (though I expressed a doubt earlier that there would be any such clients in reality). The implementation is slightly different from what Daryn suggested in his last comment. {{FsPermission#getAclBit}} is implemented to return false always. {{FsAclPermission}} overrides it to return true always. {{FSDirectory}} uses {{FsAclPermission}} on outbound responses as needed. {{PBHelper}} translates permission bits to either {{FsPermission}} or {{FsAclPermission}} as needed. In this way, the protobuf translation layer is the only place that would see an ACL bit turned on in the actual bytes, and we minimize the impact on the {{FsPermission}} code. I've changed the WebHDFS JSON representation of {{FileStatus}} too to use a separate {{aclBit}} field instead of toggling it on in {{permission}}. In my last comment, I expressed a concern that we don't really need this much complexity, but I'm willing to go with this approach if others are convinced that it's necessary. > WebHdfs ACL compatibility is broken > ----------------------------------- > > Key: HDFS-6326 > URL: https://issues.apache.org/jira/browse/HDFS-6326 > Project: Hadoop HDFS > Issue Type: Bug > Components: webhdfs > Affects Versions: 3.0.0, 2.4.0 > Reporter: Daryn Sharp > Assignee: Chris Nauroth > Priority: Blocker > Attachments: HDFS-6326.1.patch, HDFS-6326.2.patch, HDFS-6326.3.patch > > > 2.4 ACL support is completely incompatible with <2.4 webhdfs servers. The NN > throws an {{IllegalArgumentException}} exception. > {code} > hadoop fs -ls webhdfs://nn/ > Found 21 items > ls: Invalid value for webhdfs parameter "op": No enum constant > org.apache.hadoop.hdfs.web.resources.GetOpParam.Op.GETACLSTATUS > [... 20 more times...] > {code} -- This message was sent by Atlassian JIRA (v6.2#6252)