-
Bug
-
Resolution: Done
-
Major
-
2.12
-
None
-
Compatibility/Configuration
-
Low
-
Workaround Exists
-
-
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.