[ 
https://issues.apache.org/jira/browse/GEODE-8542?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bruce J Schuchardt reassigned GEODE-8542:
-----------------------------------------

    Assignee: Bruce J Schuchardt

> 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
>            Reporter: Bruce J Schuchardt
>            Assignee: Bruce J Schuchardt
>            Priority: Major
>
> 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)

Reply via email to