[ 
https://issues.apache.org/jira/browse/HBASE-25674?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Constantin-Catalin Luca updated HBASE-25674:
--------------------------------------------
    Description: 
The RegionInfo class uses
{code:java}
 DataInputStream.read(byte[lengthOfPBMagic])
{code}

to read the protobuf magic marker from the beginning of the stream.
The code in RegionInfo assumes that the passed byte buffer will be filled, but 
the DataInputStream class only guarantees that it will read at most 
lengthOfPBMagic bytes.
This sometimes causes errors stating that region info file could not be parsed.
The fix is to simply issue multiple read calls until lengthOfPBMagic bytes have 
been read.



  was:
The RegionInfo class uses
{code:java}
 DataInputStream.read(byte[lengthOfPBMagic])
{code}

to read the protobuf magic marker from the beginning of the stream.
The code in RegionInfo assumes that the passed byte buffer will be filled, but 
the DataInputStream class only guarantees that it will read at most 
lengthOfPBMagic bytes.
This sometimes causes errors stating that region info file could not be parsed.




> RegionInfo.parseFrom(DataInputStream) does not read correctly the protobuf 
> magic marker
> ---------------------------------------------------------------------------------------
>
>                 Key: HBASE-25674
>                 URL: https://issues.apache.org/jira/browse/HBASE-25674
>             Project: HBase
>          Issue Type: Bug
>          Components: Client
>    Affects Versions: 2.4.1
>            Reporter: Constantin-Catalin Luca
>            Assignee: Constantin-Catalin Luca
>            Priority: Minor
>         Attachments: HBASE_25674-2.4.1.patch
>
>
> The RegionInfo class uses
> {code:java}
>  DataInputStream.read(byte[lengthOfPBMagic])
> {code}
> to read the protobuf magic marker from the beginning of the stream.
> The code in RegionInfo assumes that the passed byte buffer will be filled, 
> but the DataInputStream class only guarantees that it will read at most 
> lengthOfPBMagic bytes.
> This sometimes causes errors stating that region info file could not be 
> parsed.
> The fix is to simply issue multiple read calls until lengthOfPBMagic bytes 
> have been read.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to