You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Andrew Kyle Purtell (Jira)" <ji...@apache.org> on 2022/06/11 19:26:00 UTC
[jira] [Resolved] (HBASE-11660) Make WAL reader follow contract for java.io.InputStream.available()
[ https://issues.apache.org/jira/browse/HBASE-11660?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrew Kyle Purtell resolved HBASE-11660.
-----------------------------------------
Resolution: Abandoned
> Make WAL reader follow contract for java.io.InputStream.available()
> -------------------------------------------------------------------
>
> Key: HBASE-11660
> URL: https://issues.apache.org/jira/browse/HBASE-11660
> Project: HBase
> Issue Type: Bug
> Components: wal
> Affects Versions: 0.99.0, 0.98.6, 2.0.0
> Reporter: Eric N. Hanson
> Priority: Minor
> Attachments: hbase-11660.01.patch
>
>
> In the process of building support to running HBase on Microsoft Azure HDInsight, I hit an issue in the HBase WAL reading process that took a lot of time to debug. The WAL reading code depends on available() for the log InputStream never returing 0 until end of file. This is not the same as the contract in java.io.InputStream for available.
> To prevent future grief for others that may want to port HBase onto storage systems other than HDFS, I propose to change the HBase WAL reader so it does not assume that EOF has been reached when available() == 0. It instead would treat available only as described in InputStream, i.e. available() is merely the number of bytes that could be read from the stream without blocking. That could be 0 even before EOF.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)