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

Haohui Mai commented on HDFS-6143:
----------------------------------

{code}
+  public ByteRangeInputStream(URLOpener o, URLOpener r, boolean connect)
+      throws IOException {
+    this(o, r);
+    if (connect) {
+      getInputStream();
+    }
+  }
{code}

{{WebHdfsFileSystem}} is only user of {{ByteRangeInputStream}}. I think it is 
safe to change the original constructor instead of adding a new one.

{code}
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/web/resources/ExceptionHandler.java
...
{code}

This should be unnecessary, as based on my understanding the code is only 
invoked at the server side.




> WebHdfsFileSystem 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, HDFS-6143.v04.patch, 
> HDFS-6143.v05.patch, HDFS-6143.v06.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