hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tsz Wo (Nicholas), SZE (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HDFS-1821) FileContext.createSymlink with kerberos enabled sets wrong owner
Date Mon, 11 Apr 2011 19:53:05 GMT

     [ https://issues.apache.org/jira/browse/HDFS-1821?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Tsz Wo (Nicholas), SZE updated HDFS-1821:

    Hadoop Flags:   (was: [Reviewed])

> +1 patch looks good.

Took a second look,
- There is another call to {{getUserName()}} in {{NameNode.createSymlink(..)}}.  So we need
to change it as well.
- Then, username should be obtained from {{dirPerms}} in {{FSDirectory.addSymlink(..)}}.

In the existing code, we have {{FSDirectory.addSymlink(..)}} calling {{UserGroupInformation.getCurrentUser()}}
which violates the code design: {{FSDirectory}} manages the directory tree data structure
and should not care about {{UserGroupInformation}}   The username resolution should be done
in {{NameNode}} or {{FSNamesystem}}.  The use of {{UserGroupInformation}} in {{FSDirectory.addSymlink(..)}}
is the only such violation in {{FSDirectory}}.

John, could you change your patch?  Sorry that I didn't see it earlier.

> FileContext.createSymlink with kerberos enabled sets wrong owner
> ----------------------------------------------------------------
>                 Key: HDFS-1821
>                 URL: https://issues.apache.org/jira/browse/HDFS-1821
>             Project: Hadoop HDFS
>          Issue Type: Bug
>    Affects Versions: 0.22.0
>         Environment: Kerberos enabled on cluster
>            Reporter: John George
>            Assignee: John George
>         Attachments: HDFS-1821.patch
> Using attached sample hdfs java program that illustrates the issue.
> Using cluster with Kerberos enabled on cluster
> # Compile instructions
> $ javac Symlink.java -cp `hadoop classpath`
> $ jar -cfe Symlink.jar Symlink Symlink.class
> # create test file for symlink to use
> 1. hadoop fs -touchz /user/username/filetest
> # Create symlink using file context
> 2. hadoop jar Symlink.jar ln /user/username/filetest /user/username/testsymlink
> # Verify owner of test file
> 3. hadoop jar Symlink.jar ls /user/username/
> -rw-r--r-- username hdfs /user/jeagles/filetest
> -rwxrwxrwx username@XX.XXXX.XXXXX.XXX hdfs /user/username/testsymlink
> 1. Owner shows 'username@XX.XXXX.XXXXX.XXX' for symlink, expecting 'username'.
> 2. Symlink is corrupted and can't removed, since it was created with an invalid user
> ------------------------
> Sample program to create Symlink
> FileContext fc = FileContext.getFileContext(getConf());
> fc.createSymlink(target, symlink, false);
> ---------------------------------------

This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

View raw message