hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Colin Patrick McCabe (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HADOOP-9652) RawLocalFs#getFileLinkStatus does not fill in the link owner and mode
Date Fri, 02 Aug 2013 21:15:49 GMT

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

Colin Patrick McCabe commented on HADOOP-9652:
----------------------------------------------

I tested this on a Solaris derivative (OpenIndiana) and verified that the fallback path for
LocalFileSystem worked.  It works!

{code}
   public static String[] getCheckProcessIsAliveCommand(String pid) {
-    return Shell.WINDOWS ?
+    return WINDOWS ?
       new String[] { Shell.WINUTILS, "task", "isAlive", pid } :
{code}

Let's make these cleanup changes in a separate JIRA to keep the diff down.

In {{RawLocalFileSystem}}, I think we should have a static final boolean that caches the information
about whether we are using the fallback path.  That also would make the code a little clearer--
it's otherwise not terribly clear why we do something different for linux and freebsd.

{code}
+  @Deprecated
   static class RawLocalFileStatus extends FileStatus {
     /* We can add extra fields here. It breaks at least CopyFiles.FilePair().
      * We recognize if the information is already loaded by check if
@@ -697,6 +706,7 @@ public void createSymlink(Path target, Path link, boolean createParent)
    * the given path does not refer to a symlink or there is an error
    * accessing the symlink.
    */
+  @Deprecated
   private String readLink(Path p) {
{code}
Can we rename these something that indicates that they're part of the fallback path?  I think
 {{RawLocalFileSystem#RawLocalFileStatus}} should be renamed to something like {{DeprecatedLocalFileStatus}}.

In general, everything that's only part of the fallback path should be somehow indicated.

I filed https://issues.apache.org/jira/browse/HDFS-5062 to address the existing {{bash -c}}
in {{org.apache.hadoop.fs.Df}}
                
> RawLocalFs#getFileLinkStatus does not fill in the link owner and mode
> ---------------------------------------------------------------------
>
>                 Key: HADOOP-9652
>                 URL: https://issues.apache.org/jira/browse/HADOOP-9652
>             Project: Hadoop Common
>          Issue Type: Bug
>            Reporter: Colin Patrick McCabe
>            Assignee: Andrew Wang
>             Fix For: 2.3.0
>
>         Attachments: hadoop-9452-1.patch, hadoop-9652-2.patch, hadoop-9652-3.patch, hadoop-9652-4.patch
>
>
> {{RawLocalFs#getFileLinkStatus}} does not actually get the owner and mode of the symlink,
but instead uses the owner and mode of the symlink target.  If the target can't be found,
it fills in bogus values (the empty string and FsPermission.getDefault) for these.
> Symlinks have an owner distinct from the owner of the target they point to, and getFileLinkStatus
ought to expose this.
> In some operating systems, symlinks can have a permission other than 0777.  We ought
to expose this in RawLocalFilesystem and other places, although we don't necessarily have
to support this behavior in HDFS.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message