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

Creating table gets stuck when specifying an invalid split policy as METADATA

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.2.2
    • 3.0.0-alpha-1, 2.3.0, 2.2.3
    • None
    • None
    • HDP-3.1.0

    Description

      We can reproduce this issue as follows:

      create 'test', "f", {METADATA => {'hbase.regionserver.region.split.policy' => 'UNDEFINED'}}
      

      After running this, creating table will get stuck. And it looks like this is because opening region fails with ClassNotFoundException:

      2019-12-16 06:45:03,671 ERROR [RS_OPEN_REGION-regionserver/c126-node2:16020-17] handler.OpenRegionHandler: Failed open of region=test,,1576477039045.7435965ddb2229c62d926b3ee963dcf3.
      java.io.IOException: Unable to load configured region split policy 'UNDEFINED' for table 'test'
              at org.apache.hadoop.hbase.regionserver.RegionSplitPolicy.getSplitPolicyClass(RegionSplitPolicy.java:132)
              at org.apache.hadoop.hbase.regionserver.HRegion.checkClassLoading(HRegion.java:7162)
              at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7083)
              at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7043)
              at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7015)
              at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:6973)
              at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:6924)
              at org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.openRegion(OpenRegionHandler.java:283)
              at org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.process(OpenRegionHandler.java:108)
              at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:104)
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
              at java.lang.Thread.run(Thread.java:745)
      Caused by: java.lang.ClassNotFoundException: UNDEFINED
              at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
              at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
              at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
              at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
              at java.lang.Class.forName0(Native Method)
              at java.lang.Class.forName(Class.java:264)
              at org.apache.hadoop.hbase.regionserver.RegionSplitPolicy.getSplitPolicyClass(RegionSplitPolicy.java:127)
              ... 12 more
      

      We should have sanity checks for the properties specified in METADATA.

      Attachments

        Issue Links

          Activity

            People

              brfrn169 Toshihiro Suzuki
              brfrn169 Toshihiro Suzuki
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: