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

REST Server failes to start without any error message

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.2.1
    • 3.0.0-alpha-1, 2.3.3, 2.4.0, 2.2.7
    • REST
    • None

    Description

      When I enable security and start rest server, i  see the messages like these:

      SLF4J: Class path contains multiple SLF4J bindings.
      SLF4J: Found binding in [jar:file:/usr/local/hadoop-2.8.5/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
      SLF4J: Found binding in [jar:file:/usr/local/hbase-2.2.1/lib/client-facing-thirdparty/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
      SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
      SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
      2020-09-03 02:10:57,995 INFO  [main] RESTServer: ***** STARTING service 'RESTServer' *****
      2020-09-03 02:10:57,998 INFO  [main] util.VersionInfo: HBase 2.2.1
      2020-09-03 02:10:57,998 INFO  [main] util.VersionInfo: Source code repository git://hao-OptiPlex-7050/home/hao/open_source/hbase revision=f93aaf770cce81caacbf22174dfee2860dbb4810
      2020-09-03 02:10:57,998 INFO  [main] util.VersionInfo: Compiled by hao on 2019年 09月 10日 星期二 14:28:27 CST
      2020-09-03 02:10:57,998 INFO  [main] util.VersionInfo: From source with checksum c0f358e344b10713f61037e16fd39f8euse

      Rest server doesn't start successfully, but it was bad that I can't find any error message indicating that server fails to start and why failure happens.

      Afer debuging, I found that loginServerPrincipal can throw exception, like:

      java.lang.IllegalArgumentException: hbase.rest.keytab.file should be set if security is enabled
              at org.apache.hbase.thirdparty.com.google.common.base.Preconditions.checkArgument(Preconditions.java:142)
              at org.apache.hadoop.hbase.rest.RESTServer.loginServerPrincipal(RESTServer.java:149)
              at org.apache.hadoop.hbase.rest.RESTServer.run(RESTServer.java:237)
              at org.apache.hadoop.hbase.rest.RESTServer.main(RESTServer.java:424)
      

       But these exceptions are caught without any messages printed.

      org.apache.hadoop.hbase.rest.RESTServer.main
      423 try {
      424    server.run();
      425    server.join();
      426 } catch (Exception e) {
      427     System.exit(1);
      428 }
      

      We need print the failure message to help user config the system.

      Attachments

        1. HBASE-24976_1.patch
          1.0 kB
          lujie

        Issue Links

          Activity

            People

              xiaoheipangzi lujie
              xiaoheipangzi lujie
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: