[ https://issues.apache.org/jira/browse/HDFS-6326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13995493#comment-13995493 ]
Chris Nauroth commented on HDFS-6326: ------------------------------------- Here is a recap of some offline discussion between me and Haohui. Summary: we are reaching consensus around inclusion of an ACL bit, with the approach of hiding the bit from other callers as done in my v3 patch. There will be some additional changes, which I'll fold into a new version of the patch to upload later. This also will incorporate Daryn's feedback. bq. I have no problem to declare this is a wrong assumption but the sad fact is that 3rd-party clients might depend on it. We agreed on taking a conservative approach of using an ACL bit, but making it invisible to current callers of {{FsPermission#toShort}}. The technique is already demonstrated in my v3 patch. bq. Provided that the FileStatus field is relatively short (~200 bytes), adding a field for ACL increases the network traffic for listing files by 5%. This is not a problem for the HDFS {{ClientProtocol}} RPC. That protocol already encodes {{FsPermission}} as a protobuf uint32, and my patch isn't going to change that. It's just going to toggle on a bit of the uint32 that was unused previously. This is a problem for WebHDFS, which will start returning an additional {{"aclBit": true}} in JSON responses. To mitigate this, the {{aclBit}} field will be excluded from the JSON response when there is no ACL. IOW, you'll never see {{"aclBit": false}}. This means that if ACLs are not in use, then there is no additional cost. Patch v3 already implements it this way. > 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)