Uploaded image for project: 'Apache Helix'
  1. Apache Helix
  2. HELIX-134 HelixManager zk session expiry/gc handling
  3. HELIX-123

ZkHelixManager.isLeader() should check session id in addition to instance name

Details

    • Sub-task
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 0.7.0-incubating
    • None
    • None
    • Sprint #4 10/2 - 10/16

    Description

      Current ZkHelixManager.isLeader() is not checking session id. This is problematic. In case of session expiry, we might have multiple Helix manager instances with the same instance name but different session id's. And since they have the same instance name, if we have a manager leaking, multiple controllers will take the controller-ship and send multiple state transition messages.

      In distributed-mode, the CONTROLLER_PARTICIPANT will create the leader node and create a CONTROLLER manager instance. In this case, the leader node contains the session id of the CONTROLLER_PARTICIPANT not the CONTROLLER, so when checking against the leader session id, we need to take care of this case as well.

      Attachments

        Activity

          People

            dafu Zhen Zhang
            dafu Zhen Zhang
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Agile

                Completed Sprint:
                Sprint #4 10/2 - 10/16 ended 15/Jul/14
                View on Board

                Slack

                  Issue deployment