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

TestClusterId failed due to wrong hbase rootdir

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 1.3.0, 1.4.0, 1.1.7, 1.2.4, 2.0.0
    • Fix Version/s: 1.4.0, 1.2.5, 1.1.9, 2.0.0
    • Component/s: test
    • Labels:
      None
    • Hadoop Flags:
      Reviewed

      Description

      https://builds.apache.org/job/PreCommit-HBASE-Build/4253/testReport/org.apache.hadoop.hbase.regionserver/TestClusterId/testClusterId/

      java.io.IOException: Shutting down
      	at org.apache.hadoop.hbase.util.JVMClusterUtil.startup(JVMClusterUtil.java:230)
      	at org.apache.hadoop.hbase.LocalHBaseCluster.startup(LocalHBaseCluster.java:409)
      	at org.apache.hadoop.hbase.MiniHBaseCluster.init(MiniHBaseCluster.java:227)
      	at org.apache.hadoop.hbase.MiniHBaseCluster.<init>(MiniHBaseCluster.java:96)
      	at org.apache.hadoop.hbase.HBaseTestingUtility.startMiniHBaseCluster(HBaseTestingUtility.java:1071)
      	at org.apache.hadoop.hbase.HBaseTestingUtility.startMiniHBaseCluster(HBaseTestingUtility.java:1037)
      	at org.apache.hadoop.hbase.regionserver.TestClusterId.testClusterId(TestClusterId.java:85)
      

      The cluster can not start up because there are no active master. The active master can not finish initialing because the hbase:namespace region can not be assign.

      In TestClusterId unit test, TEST_UTIL.startMiniHBaseCluster set new hbase root dir. But the regionserver thread which stared first used a different hbase root dir. If assign hbase:namespace region to this regionserver, the region can not be assigned because there are no tableinfo on wrong hbase root dir.

      When regionserver report to master, it will get back some new config. But the FSTableDescriptors has been initialed so it's root dir didn't changed.

      if (LOG.isDebugEnabled()) {
          LOG.info("Config from master: " + key + "=" + value);
      }
      

      I thought FSTableDescriptors need update the rootdir when regionserver get report from master.

      The master branch has same problem, too. But the balancer always assign hbase:namesapce region to master. So this unit test can passed on master branch.

        Attachments

        1. HBASE-16985-branch-1.patch
          3 kB
          Guanghao Zhang
        2. HBASE-16985-branch-1.patch
          3 kB
          Guanghao Zhang
        3. HBASE-16985.patch
          5 kB
          Guanghao Zhang
        4. HBASE-16985-v1.patch
          5 kB
          Guanghao Zhang
        5. HBASE-16985-v1.patch
          5 kB
          Michael Stack
        6. HBASE-16985-branch-1.2.patch
          5 kB
          Guanghao Zhang
        7. HBASE-16985-branch-1.1.patch
          5 kB
          Guanghao Zhang

          Issue Links

            Activity

              People

              • Assignee:
                zghao Guanghao Zhang
                Reporter:
                zghao Guanghao Zhang
              • Votes:
                0 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: