You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2021/11/10 00:09:00 UTC
[jira] [Commented] (GEODE-8542) java.lang.IllegalStateException:
tcp message exceeded max size of 16777215
[ https://issues.apache.org/jira/browse/GEODE-8542?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17441436#comment-17441436 ]
ASF subversion and git services commented on GEODE-8542:
--------------------------------------------------------
Commit 653e8cde775bb3f97f21c91017a12a809a54b51e in geode's branch refs/heads/support/1.13 from Bruce Schuchardt
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=653e8cd ]
GEODE-8542: java.lang.IllegalStateException: tcp message exceeded max… (#5562)
Limit the size of message chunks to the maximum message size allowed
by org.apache.geode.internal.tcp.Connection.
(cherry picked from commit b439d3301dc15a81a9917b05ca4bd0717d1718bc)
> java.lang.IllegalStateException: tcp message exceeded max size of 16777215
> --------------------------------------------------------------------------
>
> Key: GEODE-8542
> URL: https://issues.apache.org/jira/browse/GEODE-8542
> Project: Geode
> Issue Type: Bug
> Components: messaging
> Affects Versions: 1.14.0
> Reporter: Bruce J Schuchardt
> Assignee: Bruce J Schuchardt
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.14.0
>
>
> We had reports of this exception when using TLS for cluster communications. I wrote a test that set socket-lease-time to 1 second and then looped creating a thread to do a single 20mb put() and then waiting 2 seconds after the put() completed so that connections would time out.
> I saw message-length growth without the fix for GEODE-8506 that went away with the fix for that ticket. If I let the test go on long enough the message-length grew to over 16mb and the test failed with this error:
> {noformat}
> java.lang.IllegalStateException: tcp message exceeded max size of 16777215
> [vm2] at org.apache.geode.internal.tcp.Connection.calcHdrSize(Connection.java:610)
> [vm2] at org.apache.geode.internal.tcp.MsgStreamer.setMessageHeader(MsgStreamer.java:454)
> [vm2] at org.apache.geode.internal.tcp.MsgStreamer.realFlush(MsgStreamer.java:311)
> [vm2] at org.apache.geode.internal.tcp.MsgStreamer.write(MsgStreamer.java:378)
> [vm2] at org.apache.geode.DataSerializer.writeByteArray(DataSerializer.java:1258)
> [vm2] at org.apache.geode.DataSerializer.writeByteArray(DataSerializer.java:1226)
> [vm2] at org.apache.geode.internal.cache.DistributedCacheOperation.writeValue(DistributedCacheOperation.java:134)
> [vm2] at org.apache.geode.internal.cache.UpdateOperation$UpdateMessage.toData(UpdateOperation.java:413)
> [vm2] at org.apache.geode.internal.InternalDataSerializer.invokeToData(InternalDataSerializer.java:2300)
> [vm2] ... 53 more{noformat}
> While the fix for GEODE-8506 made it unlikely that we'll run into this again I think we should bullet-proof the MsgStreamer class to never try to send message chunks larger than Connection.MAX_MSG_SIZE.
> Note that we can still send cache operation messages larger than 16mb because MsgStreamer will break them into smaller chunks.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)