[ https://issues.apache.org/jira/browse/GEODE-8542?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
ASF GitHub Bot updated GEODE-8542: ---------------------------------- Labels: pull-request-available (was: ) > 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 > > 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.3.4#803005)