[ 
https://issues.apache.org/jira/browse/HIVE-9182?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14490555#comment-14490555
 ] 

Chris Nauroth commented on HIVE-9182:
-------------------------------------

Is {{setFullFileStatus}} always called in situations where source and 
destination are on the same file system?  That looks to be true for the call 
sites I found in the {{DDLTask}}, {{MoveTask}}, and {{Hive}} classes.  If so, 
then the presence of ACLs in the source file implies that ACLs will be 
supported when you make the setfacl call on the destination path.  (ACLs are 
enabled or disabled for the whole HDFS namespace.)  That would mean it's 
feasible to rely on checking {{sourceStatus.getPermission().getAclBit()}} and 
remove all calls to {{isExtendedAclEnabled}}, which relies on inspecting the 
configuration.

Even if you want to continue relying on the configuration, you can still check 
the ACL bit on the source before trying the {{getAclStatus}} call, which is an 
RPC.

If you decide to go ahead and remove this dependency on 
{{dfs.namenode.acls.enabled}} in the configuration, then there are also some 
log messages which mention the configuration property that could be updated.

Thanks for the patch, Abdelrahman!

> avoid FileSystem.getAclStatus rpc call for filesystems that don't support acl
> -----------------------------------------------------------------------------
>
>                 Key: HIVE-9182
>                 URL: https://issues.apache.org/jira/browse/HIVE-9182
>             Project: Hive
>          Issue Type: Bug
>    Affects Versions: 0.14.0
>            Reporter: Thejas M Nair
>            Assignee: Abdelrahman Shettia
>             Fix For: 1.2.0
>
>         Attachments: HIVE-9182.2.patch, HIVE-9182.3.patch
>
>
> File systems such as s3, wasp (azure) don't implement Hadoop FileSystem acl 
> functionality.
> Hadoop23Shims has code that calls getAclStatus on file systems.
> Instead of calling getAclStatus and catching the exception, we can also check 
> FsPermission#getAclBit .
> Additionally, instead of catching all exceptions for calls to getAclStatus 
> and ignoring them, it is better to just catch UnsupportedOperationException.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to