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

TCPGOSSIP: discovery fails when physical address is not yet known by coordinator

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 2.10
    • None
    • None

    Description

      In TCPGOSSIP, the GossipRouter stores logical address (UUID), logical name (e.g. "A") and physical address (e.g. 192.168.1.5:7800) of each member. When a member P runs the discovery in TCPGOSSIP, it fetches all of this information, so it can send messages to all members in its cluster.

      However, when member Q, who hasn't yet run a discovery (e.g. as part of MERGE2), needs to send a message back to P, since P's physical address won't be known yet, this will fail.

      A concrete uses case is this:

      • A has joined the cluster, became the coordinator as only member and registered with the GossipRouter
      • B runs the discovery protocol, fetches information about A from GossipRouter in a first phase
      • In a second phase, B sends a GET_MBRS_REQ to A, this works as B knows A's physical address
      • A receives B's request and wants to send a GET_MBRS_RSP back to B
      • However, as A didn't include its own physical address, A won't be able to send a message back to B ! Therefore B doesn't join the cluster, and will only later be merged with A !
      • Only after the periodic merge kicks in, which runs a discovery on A, will A get B's physical address and will be able to talk to B !

      ==> SOLUTION: simple, B sends it metadata (physical address, logical name) with the GET_MBRS_REQ to A, so A will have B's physical address to send a message back to B. This is actually done in the other discovery protocols as well, e.g. TCPPING or PING...

      Attachments

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: