Dan Burkert has submitted this change and it was merged. ( http://gerrit.cloudera.org:8080/9355 )
Change subject: KUDU-2305: Fix local variable usage to handle 2GB messages ...................................................................... KUDU-2305: Fix local variable usage to handle 2GB messages The maximum value for rpc_max_message_size (an int32_t) is INT_MAX. However, when using this maximum value, certain local variables in SerializeMessage() and InboundTransfer can overflow if the message size approaches INT_MAX. This changes certain variables to handle messages that approach INT_MAX. Specifically: - Local variables in SerializeMessage() become int64_t rather than int. - The total message size prefixed to the message is now treated as a uint32_t everywhere. This impacts InboundTransfer::total_length_/cur_offset_ and a local variable in ParseMessage(). These changes mean that a sender can serialize a message that is slightly larger than INT_MAX due to the added header size, but the receiver will reject all messages exceeding rpc_max_message_size (maximum INT_MAX). For testing, this modifies rpc-test's TestRpcSidecarLimits to send a message of size INT_MAX rather than rpc_max_message_size+1. This increases the test runtime from about 50ms to 2 seconds. Change-Id: I8e468099b16f7eb55de71b753acae8f57d18287c Reviewed-on: http://gerrit.cloudera.org:8080/9355 Tested-by: Kudu Jenkins Reviewed-by: Todd Lipcon <t...@apache.org> Reviewed-by: Dan Burkert <d...@cloudera.com> --- M src/kudu/rpc/rpc-test.cc M src/kudu/rpc/serialization.cc M src/kudu/rpc/transfer.cc M src/kudu/rpc/transfer.h 4 files changed, 19 insertions(+), 9 deletions(-) Approvals: Kudu Jenkins: Verified Todd Lipcon: Looks good to me, but someone else must approve Dan Burkert: Looks good to me, approved -- To view, visit http://gerrit.cloudera.org:8080/9355 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I8e468099b16f7eb55de71b753acae8f57d18287c Gerrit-Change-Number: 9355 Gerrit-PatchSet: 4 Gerrit-Owner: Joe McDonnell <joemcdonn...@cloudera.com> Gerrit-Reviewer: Dan Burkert <d...@cloudera.com> Gerrit-Reviewer: Joe McDonnell <joemcdonn...@cloudera.com> Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Michael Ho <k...@cloudera.com> Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon <t...@apache.org>