Uploaded image for project: 'JGroups'
  1. JGroups
  2. JGRP-867

COMPRESS: cannot replace message buffer in-place

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved (View Workflow)
    • Major
    • Resolution: Done
    • None
    • 2.6.8, 2.7
    • None
    • Workaround Exists
    • Hide

      Move COMPRESS under NAKACK

      Show
      Move COMPRESS under NAKACK

    Description

      When we send a message, COMPRESS replaces the msg buffer with the compressed buffer. Say the message buffer has 105992 bytes, the compressed version now has 55000 bytes. The message with a buffer of 55'000 bytes is now stored in NAKACK for retransmission.

      However, when we receive our own multicast, we will receive the same message we sent and COMPRESS.up() will uncompress the buffer in-place to 105'922 bytes. This means that the message in NAKACK retransmit buffer will now be 105'992 bytes and thus fail if we use UDP because of the 65K max datagram size !

      Typical error msg:

      org.jgroups.protocols.UDP - failed sending message to null (105992 bytes)
      java.lang.Exception: message size (105992) is greater than max bundling size
      (61000). Set the fragmentation/bundle size
      in FRAG and TP correctly
      at org.jgroups.protocols.TP$Bundler.checkLength(TP.java:1770)
      at org.jgroups.protocols.TP$Bundler.send(TP.java:1665)
      at org.jgroups.protocols.TP$Bundler.access$200(TP.java:1650)
      at org.jgroups.protocols.TP.send(TP.java:1214)
      at org.jgroups.protocols.TP.down(TP.java:988)
      at org.jgroups.protocols.Discovery.down(Discovery.java:351)
      at org.jgroups.protocols.MERGE2.down(MERGE2.java:176)
      at org.jgroups.protocols.FD_SOCK.down(FD_SOCK.java:364)
      at org.jgroups.protocols.FD.down(FD.java:357)
      at org.jgroups.protocols.VERIFY_SUSPECT.down(VERIFY_SUSPECT.java:95)
      at org.jgroups.protocols.pbcast.NAKACK.sendXmitRsp(NAKACK.java:984)
      at org.jgroups.protocols.pbcast.NAKACK.handleXmitReq(NAKACK.java:922)
      at org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:682)
      at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:167)
      at org.jgroups.protocols.FD.up(FD.java:322)
      at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:300)
      at org.jgroups.protocols.MERGE2.up(MERGE2.java:145)
      at org.jgroups.protocols.Discovery.up(Discovery.java:246)
      at org.jgroups.protocols.TP$IncomingPacket.handleMyMessage(TP.java:1535)
      at org.jgroups.protocols.TP$IncomingPacket.run(TP.java:1484)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at java.lang.Thread.run(Thread.java:619)

      Attachments

        Issue Links

          Activity

            People

              rhn-engineering-bban Bela Ban
              rhn-engineering-bban Bela Ban
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: