TCP: multicasting should be restricted to current members
---------------------------------------------------------
Key: JGRP-1289
URL:
https://issues.jboss.org/browse/JGRP-1289
Project: JGroups
Issue Type: Task
Reporter: Bela Ban
Assignee: Bela Ban
Fix For: 2.12
In TP.down(), when TCP is used as transport, BasicTCP.sendMulticast() calls
sendToAllPhysicalAddresses(). This method grabs all physical addresses from the cache and
sends the message to each of them in turn.
However, this is problematic in the following case:
- {A,B,C}
- C is stopped (CTRL-Z)
- After some time, A installs view {A,B}
- This marks C in the cache as 'removed', but the list of physical addresses is
still {A,B,C}, so when we multicast to the group, we send to A, B *and* C !
- The send to C will block at some point (as C is stopped), therefore the sending thread
will block !
- Even if we use send queues in TCP, after some time, the send queue of C will fill up and
the addition to the queue will block
SOLUTION: send a group multicast only to elements in the cache which are not marked as
'removable'.
--
This message is automatically generated by JIRA.
For more information on JIRA, see:
http://www.atlassian.com/software/jira