Uploaded image for project: 'Geode'
  1. Geode
  2. GEODE-8542

java.lang.IllegalStateException: tcp message exceeded max size of 16777215

    XMLWordPrintableJSON

Details

    Description

      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:

      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

      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.

      Attachments

        Activity

          People

            bschuchardt Bruce J Schuchardt
            bschuchardt Bruce J Schuchardt
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: