Hadoop HDFS
  1. Hadoop HDFS
  2. HDFS-1821

FileContext.createSymlink with kerberos enabled sets wrong owner

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.22.0
    • Fix Version/s: 0.22.0, 0.23.0
    • Component/s: None
    • Labels:
      None
    • Environment:

      Kerberos enabled on cluster

    • Hadoop Flags:
      Reviewed

      Description

      TEST SETUP
      Using attached sample hdfs java program that illustrates the issue.
      Using cluster with Kerberos enabled on cluster

      1. Compile instructions
        $ javac Symlink.java -cp `hadoop classpath`
        $ jar -cfe Symlink.jar Symlink Symlink.class
      1. create test file for symlink to use
        1. hadoop fs -touchz /user/username/filetest
      1. Create symlink using file context
        2. hadoop jar Symlink.jar ln /user/username/filetest /user/username/testsymlink
      1. Verify owner of test file
        3. hadoop jar Symlink.jar ls /user/username/
        rw-rr- username hdfs /user/jeagles/filetest
        -rwxrwxrwx username@XX.XXXX.XXXXX.XXX hdfs /user/username/testsymlink

      RESULTS
      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);

      ---------------------------------------

      1. HDFS-1821.patch
        2 kB
        John George
      2. HDFS-1821-2.patch
        2 kB
        John George

        Activity

        John George created issue -
        John George made changes -
        Field Original Value New Value
        Attachment HDFS-1821.patch [ 12475836 ]
        John George made changes -
        Status Open [ 1 ] Patch Available [ 10002 ]
        John George made changes -
        Description TEST SETUP
        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-- jeagles hdfs /user/jeagles/filetest
        -rwxrwxrwx jeagles@XX.XXXX.XXXXX.XXX hdfs /user/username/testsymlink

        RESULTS
        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);

        ---------------------------------------
        TEST SETUP
        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

        RESULTS
        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);

        ---------------------------------------
        Tsz Wo Nicholas Sze made changes -
        Hadoop Flags [Reviewed]
        Tsz Wo Nicholas Sze made changes -
        Hadoop Flags [Reviewed]
        John George made changes -
        Attachment HDFS-1821-2.patch [ 12476347 ]
        Tsz Wo Nicholas Sze made changes -
        Hadoop Flags [Reviewed]
        Tsz Wo Nicholas Sze made changes -
        Status Patch Available [ 10002 ] Resolved [ 5 ]
        Fix Version/s 0.22.0 [ 12314241 ]
        Fix Version/s 0.23.0 [ 12315571 ]
        Resolution Fixed [ 1 ]
        Arun C Murthy made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            John George
            Reporter:
            John George
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development