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

Gera Shegalov updated HDFS-6143:
--------------------------------

    Description: 
WebHdfsFileSystem.open and HftpFileSystem.open incorrectly handles non-existing 
paths. 
- 'open', does not really open anything, i.e., it does not contact the server, 
and therefore cannot discover FileNotFound, it's deferred until next read. It's 
counterintuitive and not how local FS or HDFS work. In POSIX you get ENOENT on 
open. 
[LzoInputFormat.getSplits|https://github.com/kevinweil/elephant-bird/blob/master/core/src/main/java/com/twitter/elephantbird/mapreduce/input/LzoInputFormat.java]
 is an example of the code that's broken because of this.

- On the server side, FileDataServlet incorrectly sends SC_BAD_REQUEST instead 
of SC_NOT_FOUND for non-exitsing paths



  was:
HftpFileSystem.open incorrectly handles non-existing paths. 
- 'open', does not really open anything, i.e., it does not contact the server, 
and therefore cannot discover FileNotFound, it's deferred until next read. It's 
counterintuitive and not how local FS or HDFS work. In POSIX you get ENOENT on 
open. 
[LzoInputFormat.getSplits|https://github.com/kevinweil/elephant-bird/blob/master/core/src/main/java/com/twitter/elephantbird/mapreduce/input/LzoInputFormat.java]
 is an example of the code that's broken because of this.

- On the server side, FileDataServlet incorrectly sends SC_BAD_REQUEST instead 
of SC_NOT_FOUND for non-exitsing paths




> (WebHdfs|Hftp)FileSystem open should throw FileNotFoundException for 
> non-existing paths
> ---------------------------------------------------------------------------------------
>
>                 Key: HDFS-6143
>                 URL: https://issues.apache.org/jira/browse/HDFS-6143
>             Project: Hadoop HDFS
>          Issue Type: Bug
>    Affects Versions: 2.3.0
>            Reporter: Gera Shegalov
>            Assignee: Gera Shegalov
>            Priority: Blocker
>         Attachments: HDFS-6143.v01.patch, HDFS-6143.v02.patch, 
> HDFS-6143.v03.patch, HDFS-6143.v04.patch
>
>
> WebHdfsFileSystem.open and HftpFileSystem.open incorrectly handles 
> non-existing paths. 
> - 'open', does not really open anything, i.e., it does not contact the 
> server, and therefore cannot discover FileNotFound, it's deferred until next 
> read. It's counterintuitive and not how local FS or HDFS work. In POSIX you 
> get ENOENT on open. 
> [LzoInputFormat.getSplits|https://github.com/kevinweil/elephant-bird/blob/master/core/src/main/java/com/twitter/elephantbird/mapreduce/input/LzoInputFormat.java]
>  is an example of the code that's broken because of this.
> - On the server side, FileDataServlet incorrectly sends SC_BAD_REQUEST 
> instead of SC_NOT_FOUND for non-exitsing paths



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to