[
https://issues.apache.org/jira/browse/HBASE-27668?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Duo Zhang resolved HBASE-27668.
-------------------------------
Hadoop Flags: Reviewed
Resolution: Fixed
Pushed to branch-2.4+.
Thanks [~vjasani] for reviewing!
> PB's parseDelimitedFrom can successfully return when there are not enough
> bytes
> -------------------------------------------------------------------------------
>
> Key: HBASE-27668
> URL: https://issues.apache.org/jira/browse/HBASE-27668
> Project: HBase
> Issue Type: Bug
> Components: Protobufs, wal
> Reporter: Duo Zhang
> Assignee: Duo Zhang
> Priority: Critical
> Fix For: 2.6.0, 3.0.0-alpha-4, 2.4.17, 2.5.4
>
>
> Found this when writing some UTs for parsing partial header and trailer,
> WALHeader.parseDelimitedFrom can return successfully when there are only two
> bytes in the stream(only the length, actually).
> So I know why in the past we have a followingKvCount == 0 check in
> ProtobufLogReader, as we just want to prevent the partial PB message.
> This is a very critial problem, for me I think we should provide our own
> implementation of parseDelimitedFrom for some critical usages, for example,
> when reading WAL entries. If there are not enough data, we just throw
> exception out instead of returning a partial PB message.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)