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

Nihal Jain commented on HBASE-28101:
------------------------------------

Created https://issues.apache.org/jira/browse/HBASE-28106 

> Should check the return value of protobuf Message.mergeDelimitedFrom
> --------------------------------------------------------------------
>
>                 Key: HBASE-28101
>                 URL: https://issues.apache.org/jira/browse/HBASE-28101
>             Project: HBase
>          Issue Type: Bug
>          Components: Protobufs, rpc
>            Reporter: Duo Zhang
>            Assignee: Duo Zhang
>            Priority: Critical
>             Fix For: 2.6.0, 2.4.18, 2.5.6, 3.0.0-beta-1
>
>
> Found this problem while upgrading thirdparty dependencies.
> The javadoc of mergeDelimitedFrom says
> {code}
>     /**
>      * Like {@link #mergeFrom(InputStream)}, but does not read until EOF. 
> Instead, the size of the
>      * message (encoded as a varint) is read first, then the message data. 
> Use {@link
>      * MessageLite#writeDelimitedTo(OutputStream)} to write messages in this 
> format.
>      *
>      * @return true if successful, or false if the stream is at EOF when the 
> method starts. Any
>      *     other error (including reaching EOF during parsing) causes an 
> exception to be thrown.
>      * @throws InvalidProtocolBufferException the bytes read are not 
> syntactically correct
>      *     according to the protobuf wire format specification. The data is 
> corrupt, incomplete,
>      *     or was never a protobuf in the first place.
>      * @throws IOException an I/O error reading from the stream
>      */
> {code}
> So we should not ignore the return value, otherwise we may get an incomplete 
> message.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to