hadoop-common-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Craig Macdonald (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HADOOP-4368) Superuser privileges required to do "df"
Date Sat, 24 Jan 2009 00:05:59 GMT

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

Craig Macdonald updated HADOOP-4368:
------------------------------------

    Attachment: hadoop4368.fsstatus.v4.patch

@Doug: Brian, the original poster, was concerned about lookups from fuse_dfs. In actual fact
the problem is with libhdfs and also the provision of an adequate Java API. In this case,
fixing libhdfs as well as the Java API should resolve the entire issue.

Attached work-in-progress patch. This attempts to add libhdfs support for FsStatus API. If
anyone knows JNI, perhaps they can explain why it is calling append(Path f, int bufferSize)
instead of getStatus()?? I'm mystified.

{noformat}
$  ant -Dcompile.c++=true -Dlibhdfs=true clean compile test-c++-libhdfs
<snip>
     [exec] Exception in thread "main" java.lang.NullPointerException
     [exec]     at org.apache.hadoop.hdfs.DistributedFileSystem.checkPath(DistributedFileSystem.java:89)
     [exec]     at org.apache.hadoop.hdfs.DistributedFileSystem.getPathName(DistributedFileSystem.java:154)
     [exec]     at org.apache.hadoop.hdfs.DistributedFileSystem.append(DistributedFileSystem.java:185)
     [exec]     at org.apache.hadoop.fs.FileSystem.append(FileSystem.java:531)
     [exec] Call to org.apache.hadoop.fs.FsStatus::getCapacity failed!
     [exec] hdfsGetCapacity: -1
     [exec] Exception in thread "main" java.lang.NullPointerException
     [exec]     at org.apache.hadoop.hdfs.DistributedFileSystem.checkPath(DistributedFileSystem.java:89)
     [exec]     at org.apache.hadoop.hdfs.DistributedFileSystem.getPathName(DistributedFileSystem.java:154)
     [exec]     at org.apache.hadoop.hdfs.DistributedFileSystem.append(DistributedFileSystem.java:185)
     [exec]     at org.apache.hadoop.fs.FileSystem.append(FileSystem.java:531)
     [exec] Call to org.apache.hadoop.fs.FsStatus::getUsed failed!
<snip>
{noformat}

> Superuser privileges required to do "df"
> ----------------------------------------
>
>                 Key: HADOOP-4368
>                 URL: https://issues.apache.org/jira/browse/HADOOP-4368
>             Project: Hadoop Core
>          Issue Type: Wish
>          Components: dfs, libhdfs
>    Affects Versions: 0.18.1
>            Reporter: Brian Bockelman
>            Assignee: Craig Macdonald
>            Priority: Minor
>         Attachments: fuse_statfs.patch, fuse_statfs_trunk.patch, hadoop4368.fsstatus.patch,
hadoop4368.fsstatus.v2.patch, hadoop4368.fsstatus.v3.patch, hadoop4368.fsstatus.v4.patch
>
>   Original Estimate: 0.17h
>  Remaining Estimate: 0.17h
>
> super user privileges are required in DFS in order to get the file system statistics
(FSNamesystem.java, getStats method).  This means that when HDFS is mounted via fuse-dfs as
a non-root user, "df" is going to return 16exabytes total and 0 free instead of the correct
amount.
> As far as I can tell, there's no need to require super user privileges to see the file
system size (and historically in Unix, this is not required).
> To fix this, simply comment out the privilege check in the getStats method.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message