Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-24517

AssignmentManager.start should add meta region to ServerStateNode

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Critical
    • Resolution: Fixed
    • None
    • 3.0.0-alpha-1, 2.3.0, 2.2.6
    • amv2
    • None
    • Reviewed

    Description

      In AssignmentManager.start, we will load the meta region state and location from zk and create the RegionStateNode, but we forget to call regionStates.addRegionToServer to add the region to the region server.

      Found this when implementing HBASE-24390. As in HBASE-24390, we will remove RegionInfoBuilder.FIRST_META_REGIONINFO so in SCP, we need to use the getRegionsOnServer instead of RegionInfoBuilder.FIRST_META_REGIONINFO when assigning meta, so the bug becomes a real problem.

      Though it is not a big problem for SCP for current 2.x and master branches, it is a high risky bug. For example, in AssignmentManager.submitServerCrash, now we use the RegionStateNode of meta regions to determine whether the given region server carries meta regions. But it is also valid to test through the ServerStateNode's region list. If later we change this method to use ServerStateNode, it will cause very serious data loss bug.

      Attachments

        Activity

          People

            zhangduo Duo Zhang
            zhangduo Duo Zhang
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: