HBase
  1. HBase
  2. HBASE-3337

Restore HBCK fix of unassignment and dupe assignment for new master

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.90.0, 0.92.0
    • Component/s: master, util
    • Labels:
      None
    • Hadoop Flags:
      Reviewed

      Description

      HBCK fixing of region unassignment and duplicate assignment was broken with the move to the new master.

      We've seen it happen doing testing of 0.90 RCs like that over in HBASE-3332.

      Rather than the old "clear everything out approach" which relied on the BaseScanner, in the new master we should just manipulate unassigned ZK nodes and let the master handle the transition.

      1. HBASE-3337-final.patch
        24 kB
        Jonathan Gray
      2. HBASE-3337-v2.patch
        26 kB
        Jonathan Gray
      3. HBASE-3337-v3.patch
        27 kB
        Jonathan Gray

        Issue Links

          Activity

          Hide
          Todd Lipcon added a comment -

          I just ran this on a cluster which had a large disabled table, and it kind of freaked out - made unassigned ZK nodes for every region, even though the region should be offline. Not certain if it's new due to this patch or if it already existed

          Show
          Todd Lipcon added a comment - I just ran this on a cluster which had a large disabled table, and it kind of freaked out - made unassigned ZK nodes for every region, even though the region should be offline. Not certain if it's new due to this patch or if it already existed
          Hide
          Jonathan Gray added a comment -

          This is the patch from over in HBASE-3332 plus an additional fix to modernize disabled table handling in HBCK. Currently it considers a table disabled if it's in DISABLED state. It ignores other states like DISABLING (for now), not really sure if we should do something there but perhaps for HBCK, disabled and disabling should both be treated as equivalent (and thus, region should not be deployed).

          Show
          Jonathan Gray added a comment - This is the patch from over in HBASE-3332 plus an additional fix to modernize disabled table handling in HBCK. Currently it considers a table disabled if it's in DISABLED state. It ignores other states like DISABLING (for now), not really sure if we should do something there but perhaps for HBCK, disabled and disabling should both be treated as equivalent (and thus, region should not be deployed).
          Hide
          Jonathan Gray added a comment -

          I think we should treat DISABLING as disabled because when table is DISABLING we do not expect it to be deployed and in HBCK should treat a region of a DISABLING table that is deployed as incorrect.

          Show
          Jonathan Gray added a comment - I think we should treat DISABLING as disabled because when table is DISABLING we do not expect it to be deployed and in HBCK should treat a region of a DISABLING table that is deployed as incorrect.
          Hide
          stack added a comment -

          Whats this? + public static final String HBCK_CODE_NAME = "HBCKsecret123";? Its ugly. Can you make it uglier and more explanatory? Something like 'SERVER_NAME_USED_WHEN_HBCK_IS_DOING_MOVE'.

          Your patch does not do the above suggested DISABLING?

          Show
          stack added a comment - Whats this? + public static final String HBCK_CODE_NAME = "HBCKsecret123";? Its ugly. Can you make it uglier and more explanatory? Something like 'SERVER_NAME_USED_WHEN_HBCK_IS_DOING_MOVE'. Your patch does not do the above suggested DISABLING?
          Hide
          stack added a comment -

          You can change the server name on commit. +1 on commit since it does doe DISABLING.

          Show
          stack added a comment - You can change the server name on commit. +1 on commit since it does doe DISABLING.
          Hide
          Jonathan Gray added a comment -

          Final patch which removes HBASE-3332 and changes hbck server name constant.

          Show
          Jonathan Gray added a comment - Final patch which removes HBASE-3332 and changes hbck server name constant.
          Hide
          Jonathan Gray added a comment -

          Committed to branch and trunk.

          Show
          Jonathan Gray added a comment - Committed to branch and trunk.
          Hide
          Hudson added a comment -

          Integrated in HBase-TRUNK #1697 (See https://hudson.apache.org/hudson/job/HBase-TRUNK/1697/)

          Show
          Hudson added a comment - Integrated in HBase-TRUNK #1697 (See https://hudson.apache.org/hudson/job/HBase-TRUNK/1697/ )

            People

            • Assignee:
              Jonathan Gray
              Reporter:
              Jonathan Gray
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development