You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Nicolas Spiegelberg (JIRA)" <ji...@apache.org> on 2010/09/25 04:00:33 UTC

[jira] Commented: (HBASE-3038) WALReaderFSDataInputStream.getPos() fails if Filesize > MAX_INT

    [ https://issues.apache.org/jira/browse/HBASE-3038?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12914738#action_12914738 ] 

Nicolas Spiegelberg commented on HBASE-3038:
--------------------------------------------

Beautiful note in DFSClient.java
{code}
    /**
     * WARNING: This method does not work with files larger than 2GB.
     * Use getFileLength() - getPos() instead.
     */
    @Override
    public synchronized int available() throws IOException {
{code}
I plan to heed that warning and use introspection to fix this problem.

> WALReaderFSDataInputStream.getPos() fails if Filesize > MAX_INT
> ---------------------------------------------------------------
>
>                 Key: HBASE-3038
>                 URL: https://issues.apache.org/jira/browse/HBASE-3038
>             Project: HBase
>          Issue Type: Bug
>          Components: regionserver
>    Affects Versions: 0.89.20100621, 0.90.0
>            Reporter: Nicolas Spiegelberg
>            Assignee: Nicolas Spiegelberg
>            Priority: Critical
>             Fix For: 0.89.20100924, 0.90.0
>
>
> WALReaderFSDataInputStream.getPos() uses  this.in.available() to determine the actual length of the file.  Except that available() returns an int instead of a long.  Therefore, our current logic is broke when trying to read a split log > 2GB.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.