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

FD_ALL -> when msg_counts_as_heartbeat is enabled, heartbeat messages are unnecessarily passed up to the layer above

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 2.12
    • 2.12
    • None
    • Compatibility/Configuration
    • Low
    • Workaround Exists
    • Hide

      Ignoring heartbeat messages in higher layers.

      Show
      Ignoring heartbeat messages in higher layers.
    • Hide

      Enable flag in question. Observe how heartbeat messages propagate upwards beyond the FD_ALL layer.

      Show
      Enable flag in question. Observe how heartbeat messages propagate upwards beyond the FD_ALL layer.

      The code in question is FD_ALL.up()

      When the message is itself a heartbeat message originating from another node, the control flow goes inside the block guarded by msg_counts_as_heartbeat, updates the sender timestamp, and then break; which means control flow goes outside the switch block and return up_prot.up(evt); is invoked. So what ends up happening is that all heartbeat messages are passed up the stack while they shouldn't be.

      We use JGroups as the replication mechanism for EhCache, and we noticed this issue after enabling msg_counts_as_heartbeat - the JChannel receiver all of a sudden began receiving empty messages every 5 seconds, which is the heartbeat interval we have configured. Disabling the flag brought everything back to normal.

        1. patch.txt
          0.9 kB
          Manuel Dominguez Sarmiento

              rhn-engineering-bban Bela Ban
              madsrenxo Manuel Dominguez Sarmiento (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: