hadoop-common-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "dhruba borthakur (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HADOOP-1647) DistributedFileSystem.getFileStatus() fails for path "/"
Date Tue, 31 Jul 2007 18:43:53 GMT

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

dhruba borthakur updated HADOOP-1647:
-------------------------------------

    Attachment: fileStatus3.patch

Raghu had an excellent review comment saying that the rootInode can be detected by comparing
inode->parent == NULL rather than comparing an inode with FSDirectory.rootDir. Incorporated
this change.

> DistributedFileSystem.getFileStatus() fails for path "/"
> --------------------------------------------------------
>
>                 Key: HADOOP-1647
>                 URL: https://issues.apache.org/jira/browse/HADOOP-1647
>             Project: Hadoop
>          Issue Type: Bug
>          Components: dfs
>    Affects Versions: 0.14.0, 0.15.0
>            Reporter: Enis Soztutar
>            Assignee: dhruba borthakur
>            Priority: Blocker
>             Fix For: 0.14.0, 0.15.0
>
>         Attachments: fileStatus3.patch, getFileStatusJavadoc.patch
>
>
> DistributedFileSystem#getFileStatus throws the following exception when invoked with
new Path("/"). LocalFileSystem does not. The code to produce this error is
> {code}
>  public static void main(String[] args) throws Exception{
>     Configuration conf = new Configuration();
>     FileSystem fs = FileSystem.get(conf);
>     Path path = new Path("/");
>     System.out.println("Path : \"" + path.toString() + "\"");
>     System.out.println(fs.isDirectory(path));
>     System.out.println(fs.getFileStatus(path).isDir()); 
>   }
> {code}
> for Local configuration the code prints : 
> {code}
> Path : "/"
> true
> true
> {code}
> For a new formatted dfs with only one file /user/enis/file.txt, Path could not be created.

> {code}
> Path : "/"
> false
> Exception in thread "main" org.apache.hadoop.ipc.RemoteException: java.io.IOException:
java.lang.IllegalArgumentException: Can not create a Path from an empty string
>         at org.apache.hadoop.fs.Path.checkPathArg(Path.java:82)
>         at org.apache.hadoop.fs.Path.<init>(Path.java:90)
>         at org.apache.hadoop.dfs.DFSFileInfo.<init>(DFSFileInfo.java:59)
>         at org.apache.hadoop.dfs.FSDirectory.getFileInfo(FSDirectory.java:729)
>         at org.apache.hadoop.dfs.FSNamesystem.getFileInfo(FSNamesystem.java:1301)
>         at org.apache.hadoop.dfs.NameNode.getFileInfo(NameNode.java:488)
>         at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:340)
>         at org.apache.hadoop.ipc.Server$Handler.run(Server.java:566)
>         at org.apache.hadoop.ipc.Client.call(Client.java:470)
>         at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:165)
>         at org.apache.hadoop.dfs.$Proxy0.getFileInfo(Unknown Source)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:82)
>         at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:59)
>         at org.apache.hadoop.dfs.$Proxy0.getFileInfo(Unknown Source)
>         at org.apache.hadoop.dfs.DFSClient.getFileInfo(DFSClient.java:430)
>         at org.apache.hadoop.dfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:319)
>         at org.apache.hadoop.util.TestIsDir.main(TestIsDir.java:38)
> {code}

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