Uploaded image for project: 'Application Server 3  4  5 and 6'
  1. Application Server 3 4 5 and 6
  2. JBAS-4229

HASingletonController doesn't handle "split brain" correctly.

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • JBossAS-4.2.0.CR2
    • JBossAS-4.0.3 SP1, JBossAS-4.0.4.GA, JBossAS-4.0.5.GA, JBossAS-4.2.0.CR1
    • Clustering
    • None

      The HASingletonController doesn't understand the "split brain" problem.

      Take for example a JBossMQ destination (queue) which needs to be "restored" from the database
      when a new singleton is elected.

      The scenario goes as follows:

      STEP1 (original state):
      cluster=server1, server2
      master=server1

      STEP2 (unplug server1 from the network):
      cluster=server2
      master=server2
      server2 will now restore the queue from the database

      BUT! server1 has the view
      cluster=server1
      master=server1

      STEP3 (plug server1 back into the network)
      cluster=server1, server2
      master=server1

      We are back to the original state, but since server1 thinks it never left the cluster,
      it doesn't restore the changes (from the database) that server2 made to the queue between STEP2 and STEP3.
      This is because it doesn't restart the HASingleton on server1.

      There needs to be some extra processing in the "merge" when two masters agree to form a cluster
      that ensures that whoever they elect as the new master gets its HASingleton(s) restarted.
      Otherwise, it won't have the up-to-date state from the other master.

              bstansbe@redhat.com Brian Stansberry
              adrian.brock Adrian Brock (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Created:
                Updated:
                Resolved: