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

JDBC_PING discovery fails when stale entries are found in the database

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 3.6.3
    • 3.6.1
    • None

      Node: "CHQ-PATRICKH-55008"
      Database contains two rows.. other node is dead but was unable to remove the JDBC entry.

      1) JChannel.connect(...)
      2) JChannel.down(Event[CONNECT_WITH_STATE_TRANSFER_USE_FLUSH])
      3) STATE_TRANSFER -> FRAG2 -> MFC -> UFC -> GMS
      4) GMS.down(...) calls out to joinWithStateTransfer -> joinInternal(...)

      JDBC pulls the node list from the database table.

      Ping Data:

      • CHQ-PATRICKH-3895, name=CHQ-PATRICKH-3895, addr=10.1.130.228:55503, server
      • CHQ-PATRICKH-55008, name=CHQ-PATRICKH-55008, addr=10.1.130.228:57489

      joinInternal is a never-terminating while loop:

      • down: Event.FIND_INITIAL_MBRS_EVT
      • inspect responses – no valid join responses
      • responses are NOT empty -> does not become singletonMember
      • gets all coordinators (none)
      • Sorts all nodes by GUID in a TreeSet
      • Is first of all joiners?
      • No, another joiner is listed first

      ... repeat forever

      When the process is restarted and a node ID < than the existing db entry is generated, it successfully takes over as owner.

              rhn-engineering-bban Bela Ban
              phaas_jira Patrick Haas (Inactive)
              Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: