hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Charles Lamb (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-6422) getfattr in CLI doesn't throw exception or return non-0 return code when xattr doesn't exist
Date Mon, 19 May 2014 22:31:38 GMT

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

Charles Lamb commented on HDFS-6422:
------------------------------------

[~andrew.wang] and I discussed this offline. We also ran some tests on the ext4 extended attribute
functions. It appears that getfattr always returns names and values. listfattr ionly returns
names. The new HDFS listxattr api will be covered separately under HDFS-6375. The attached
diff covers getting HDFS getfattr to mimic the Linux/ext4 functionality. To wit:

Throw an exception if:
.  the caller requests an attribute that doesn't exist,
.  the caller requests an attribute and they don't have proper permissions, 
.  the caller requests an attribute and they don't have permission to the namespace. This
applies to the trusted namespace.
.  the caller specifies an unknown namespace.

The gist of Linux extended attribute permissions is that you need access to the inode to read/write
xattr names and you need access to the entity itself (i.e. a file or directory) to read/write
xattr values. The former is determined by the parent directory permissions and the latter
by the entity's permissions (i.e. the thing on which the extended attributes are associated).

You need scan/execute permissions on the parent (owning) directory to access extended attribute
names. You need read permission on the entity itself to read extended attribute values and
you need write permission to modify them.

The patch purports to implement those semantics and adds appropriate unit tests for the same.


> getfattr in CLI doesn't throw exception or return non-0 return code when xattr doesn't
exist
> --------------------------------------------------------------------------------------------
>
>                 Key: HDFS-6422
>                 URL: https://issues.apache.org/jira/browse/HDFS-6422
>             Project: Hadoop HDFS
>          Issue Type: Bug
>    Affects Versions: HDFS XAttrs (HDFS-2006)
>            Reporter: Charles Lamb
>            Assignee: Charles Lamb
>         Attachments: HDFS-6422.1.patch, HDFS-6422.2.patch
>
>
> If you do
> hdfs dfs -getfattr -n user.blah /foo
> and user.blah doesn't exist, the command prints
> # file: /foo
> and a 0 return code.
> It should print an exception and return a non-0 return code instead.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message