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

TCP: multicasting should be restricted to current members

XMLWordPrintable

    • Icon: Task Task
    • Resolution: Done
    • Icon: Major Major
    • 2.12
    • None
    • None

      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'.

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

                Created:
                Updated:
                Resolved: