You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-dev@hadoop.apache.org by "Brahma Reddy Battula (JIRA)" <ji...@apache.org> on 2012/05/03 16:58:50 UTC

[jira] [Created] (HDFS-3361) read(long position, byte[] buffer, int offset, int length) is not behaving as expected

Brahma Reddy Battula created HDFS-3361:
------------------------------------------

             Summary: read(long position, byte[] buffer, int offset, int length) is not  behaving as expected
                 Key: HDFS-3361
                 URL: https://issues.apache.org/jira/browse/HDFS-3361
             Project: Hadoop HDFS
          Issue Type: Bug
          Components: hdfs client
    Affects Versions: 2.0.0, 3.0.0
            Reporter: Brahma Reddy Battula
             Fix For: 2.0.0


Start NN and DN
write a file with size 1024
now try to read file using following api
fsin.read(10, writeBuff, 10, fsin.available())

Here it's returning zero..But actual file length is 1024
 
  *Java Docs provided* 
{code}
/**
   * Read bytes from the given position in the stream to the given buffer.
   *
   * @param position  position in the input stream to seek
   * @param buffer    buffer into which data is read
   * @param offset    offset into the buffer in which data is written
   * @param length    maximum number of bytes to read
   * @return total number of bytes read into the buffer, or <code>-1</code>
   *         if there is no more data because the end of the stream has been
   *         reached
   */
  public int read(long position, byte[] buffer, int offset, int length)
    throws IOException {
    return ((PositionedReadable)in).read(position, buffer, offset, length);
  }
{code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Resolved] (HDFS-3361) read(long position, byte[] buffer, int offset, int length) is not behaving as expected

Posted by "Brahma Reddy Battula (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HDFS-3361?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Brahma Reddy Battula resolved HDFS-3361.
----------------------------------------

    Resolution: Not A Problem

availble method will the actual data that can be read 

since in my first call i used available() (gave me full length of file and pos in the stream is updated)

next when i called the available it will return 0 since the pos is incremented and no new data written.

since this is inline with java i feel this is not a problem
                
> read(long position, byte[] buffer, int offset, int length) is not  behaving as expected
> ---------------------------------------------------------------------------------------
>
>                 Key: HDFS-3361
>                 URL: https://issues.apache.org/jira/browse/HDFS-3361
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: hdfs client
>    Affects Versions: 2.0.0, 3.0.0
>            Reporter: Brahma Reddy Battula
>             Fix For: 2.0.0
>
>
> Start NN and DN
> write a file with size 1024
> now try to read file using following api
> fsin.read(writeBuff, 1024, fsin.available())..This is retuning correctly as expected.
> fsin.read(10, writeBuff, 10, fsin.available())(this is retunring zero.)
> Here it's returning zero..But actual file length is 1024
>  
>   *Java Docs provided* 
> {code}
> /**
>    * Read bytes from the given position in the stream to the given buffer.
>    *
>    * @param position  position in the input stream to seek
>    * @param buffer    buffer into which data is read
>    * @param offset    offset into the buffer in which data is written
>    * @param length    maximum number of bytes to read
>    * @return total number of bytes read into the buffer, or <code>-1</code>
>    *         if there is no more data because the end of the stream has been
>    *         reached
>    */
>   public int read(long position, byte[] buffer, int offset, int length)
>     throws IOException {
>     return ((PositionedReadable)in).read(position, buffer, offset, length);
>   }
> {code}
> But If I try with only ->fsin.read(10, writeBuff, 10, fsin.available())(client prog contains only one read method)
> I am getting actual length...I am not sure actual cause..
> Please correct me If I am wrong.........

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Reopened] (HDFS-3361) read(long position, byte[] buffer, int offset, int length) is not behaving as expected

Posted by "Suresh Srinivas (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HDFS-3361?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Suresh Srinivas reopened HDFS-3361:
-----------------------------------

    
> read(long position, byte[] buffer, int offset, int length) is not  behaving as expected
> ---------------------------------------------------------------------------------------
>
>                 Key: HDFS-3361
>                 URL: https://issues.apache.org/jira/browse/HDFS-3361
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: hdfs client
>    Affects Versions: 2.0.0, 3.0.0
>            Reporter: Brahma Reddy Battula
>             Fix For: 2.0.0
>
>
> Start NN and DN
> write a file with size 1024
> now try to read file using following api
> fsin.read(writeBuff, 1024, fsin.available())..This is retuning correctly as expected.
> fsin.read(10, writeBuff, 10, fsin.available())(this is retunring zero.)
> Here it's returning zero..But actual file length is 1024
>  
>   *Java Docs provided* 
> {code}
> /**
>    * Read bytes from the given position in the stream to the given buffer.
>    *
>    * @param position  position in the input stream to seek
>    * @param buffer    buffer into which data is read
>    * @param offset    offset into the buffer in which data is written
>    * @param length    maximum number of bytes to read
>    * @return total number of bytes read into the buffer, or <code>-1</code>
>    *         if there is no more data because the end of the stream has been
>    *         reached
>    */
>   public int read(long position, byte[] buffer, int offset, int length)
>     throws IOException {
>     return ((PositionedReadable)in).read(position, buffer, offset, length);
>   }
> {code}
> But If I try with only ->fsin.read(10, writeBuff, 10, fsin.available())(client prog contains only one read method)
> I am getting actual length...I am not sure actual cause..
> Please correct me If I am wrong.........

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Resolved] (HDFS-3361) read(long position, byte[] buffer, int offset, int length) is not behaving as expected

Posted by "Suresh Srinivas (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HDFS-3361?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Suresh Srinivas resolved HDFS-3361.
-----------------------------------

    Resolution: Invalid

This issue is invalid.
                
> read(long position, byte[] buffer, int offset, int length) is not  behaving as expected
> ---------------------------------------------------------------------------------------
>
>                 Key: HDFS-3361
>                 URL: https://issues.apache.org/jira/browse/HDFS-3361
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: hdfs client
>    Affects Versions: 2.0.0, 3.0.0
>            Reporter: Brahma Reddy Battula
>             Fix For: 2.0.0
>
>
> Start NN and DN
> write a file with size 1024
> now try to read file using following api
> fsin.read(writeBuff, 1024, fsin.available())..This is retuning correctly as expected.
> fsin.read(10, writeBuff, 10, fsin.available())(this is retunring zero.)
> Here it's returning zero..But actual file length is 1024
>  
>   *Java Docs provided* 
> {code}
> /**
>    * Read bytes from the given position in the stream to the given buffer.
>    *
>    * @param position  position in the input stream to seek
>    * @param buffer    buffer into which data is read
>    * @param offset    offset into the buffer in which data is written
>    * @param length    maximum number of bytes to read
>    * @return total number of bytes read into the buffer, or <code>-1</code>
>    *         if there is no more data because the end of the stream has been
>    *         reached
>    */
>   public int read(long position, byte[] buffer, int offset, int length)
>     throws IOException {
>     return ((PositionedReadable)in).read(position, buffer, offset, length);
>   }
> {code}
> But If I try with only ->fsin.read(10, writeBuff, 10, fsin.available())(client prog contains only one read method)
> I am getting actual length...I am not sure actual cause..
> Please correct me If I am wrong.........

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira