hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Haohui Mai (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-8943) Read apis in ByteRangeInputStream does not read all the bytes specified when chunked transfer-encoding is used in the server
Date Mon, 24 Aug 2015 21:21:46 GMT

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

Haohui Mai commented on HDFS-8943:
----------------------------------

Closing this as invalid.

There are no guarantees that {{read()}} should read all bytes if you look at the JavaDoc of
the InputStream:

{noformat}
int	read(byte[] b)
Reads some number of bytes from the input stream and stores them into the buffer array b.
int	read(byte[] b, int off, int len)
Reads up to len bytes of data from the input stream into an array of bytes.
{noformat}

Some applications depend on this semantic for low-latency reads. Putting a loop inside will
break them.

> Read apis in ByteRangeInputStream does not read all the bytes specified when chunked
transfer-encoding is used in the server
> ----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HDFS-8943
>                 URL: https://issues.apache.org/jira/browse/HDFS-8943
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: webhdfs
>    Affects Versions: 2.7.1
>            Reporter: Shradha Revankar
>            Assignee: Shradha Revankar
>         Attachments: HDFS-8943.000.patch
>
>
> With the default Webhdfs server implementation the read apis in ByteRangeInputStream
work as expected reading the correct number of bytes for these apis :
> {{public int read(byte b[], int off, int len)}}
> {{public int read(long position, byte[] buffer, int offset, int length)}}
> But when a custom Webhdfs server implementation is plugged in which uses chunked Transfer-encoding,
these apis read only the first chunk. Simple fix would be to loop and read till bytes specified
similar to {{readfully()}}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message