Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-6996

Can't make a node master twice (during a single Broker lifetime)

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 0.30, 0.32, qpid-java-6.0
    • qpid-java-6.0.1, qpid-java-6.1
    • Broker-J
    • None

    Description

      The Java Broker's BDB HA implementation permits the mastership to be transferred around the group. To initiate this change, a user mutates the model attribute "role" on object BDBHAVHN or BDBHARRN to have the value MASTER through a management interface.

      If I make this change once, the change is effective. If later the mastership moves again (as a result of a failure and subsequent election or a transfer master elsewhere in the group), the attempt to move the mastership back to this node is ignored (defect).

      The issue is that ACO#changeAttributes blocks the subsequent change because it does not know that attribute's value is anything other than MASTER. This is because BDBHAVHN#setRole (happens asynchronously as the mastership changes) updates only the CO view of the attribute (#_role), leaving ACO#_attributes.get(ROLE) with a stale value MASTER. The Broker containing the node needs to be bounce to correct the state problem.

      The main use-case for transfer master is to restore the master to its business as usual position following a device failure. This use-case is not affected by this defect.

      Attachments

        1. roleChangePatch.diff
          4 kB
          Robert Godfrey
        2. roleChangePatch2.diff
          7 kB
          Alex Rudyy

        Activity

          People

            Unassigned Unassigned
            kwall Keith Wall
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: