-
Bug
-
Resolution: Done
-
Major
-
9.2.1.Final
-
None
-
Sprint 9.3.0.Beta1
JGroupsTransport only waits for responses from nodes in the JGroups cluster view, but it still sends messages to all the nodes specified as a target. The idea was to optimize the common case by avoiding a HashSet.contains() call.
However, when a node is not in the view, messages to it still pass through the entire JGroups stack, and UNICAST3 keeps those messages in a send table for a long time (UNICAST3.conn_expiry_timeout, changed with ISPN-9038 from 0 (unlimited) to 2 minutes (JGroups default)). Having a potentially unlimited number of messages of non-members, each with its own send table, makes it much harder to estimate memory usage.