[
https://issues.apache.org/jira/browse/KUDU-2296?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16362963#comment-16362963
]
Joe McDonnell commented on KUDU-2296:
-------------------------------------
Working on a patch
> Kudu RPC cannot deserialize messages larger than 64MB
> -----------------------------------------------------
>
> Key: KUDU-2296
> URL: https://issues.apache.org/jira/browse/KUDU-2296
> Project: Kudu
> Issue Type: Bug
> Components: rpc
> Affects Versions: 1.6.0
> Reporter: Joe McDonnell
> Assignee: Joe McDonnell
> Priority: Major
>
> Impala has been testing Kudu RPC with a larger value for
> rpc_max_message_size. I noticed that when the message size exceeds 64MB,
> rpc::serialization::ParseMessage() hits this condition:
> {code:java}
> if (PREDICT_FALSE(!in.Skip(main_msg_len))) {
> return Status::Corruption(
> StringPrintf("Invalid packet: data too short, expected %d byte
> main_msg", main_msg_len),
> KUDU_REDACT(buf.ToDebugString()));
> }
> {code}
> The actual buffer is the appropriate size. What is happening is that protobuf
> imposes a 64MB total byte limit by default. Once a message exceeds that, the
> Skip() call will return false when trying to go past the 64MB limit. The
> deserialization code can get around this by setting the total byte limit with
> CodedInputSTream::SetTotalByteLimit().
> This should not impact existing systems at the moment, because the default
> value for rpc_max_message_size is 50MB.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)