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

region mover gives NullPointerException instead of saying a host isn't in the cluster

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 3.0.0-alpha-1, 2.1.0, 2.2.0, 2.3.0
    • 3.0.0-alpha-1, 2.3.0, 2.1.7, 2.2.2
    • None
    • None
    • Hide
      giving the region mover "unload" command a region server name that isn't recognized by the cluster results in a "I don't know about that host" message instead of a NPE.

      set log level to DEBUG if you'd like the region mover to log the set of region server names it got back from the cluster.
      Show
      giving the region mover "unload" command a region server name that isn't recognized by the cluster results in a "I don't know about that host" message instead of a NPE. set log level to DEBUG if you'd like the region mover to log the set of region server names it got back from the cluster.

    Description

      if passed a host that isn't in the cluster we get a NPE

      2019-09-17 21:50:45,595 ERROR [pool-2-thread-1] util.RegionMover: Error while unloading regions 
      java.lang.NullPointerException: serverName is null
      	at org.apache.hbase.thirdparty.com.google.common.base.Preconditions.checkNotNull(Preconditions.java:897)
      	at org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory$AdminRequestCallerBuilder.build(AsyncRpcRetryingCallerFactory.java:518)
      	at org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory$AdminRequestCallerBuilder.call(AsyncRpcRetryingCallerFactory.java:522)
      	at org.apache.hadoop.hbase.client.RawAsyncHBaseAdmin.getRegions(RawAsyncHBaseAdmin.java:842)
      	at org.apache.hadoop.hbase.client.AdminOverAsyncAdmin.getRegions(AdminOverAsyncAdmin.java:229)
      	at org.apache.hadoop.hbase.util.RegionMover.unloadRegions(RegionMover.java:448)
      	at org.apache.hadoop.hbase.util.RegionMover.lambda$unload$1(RegionMover.java:431)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      	at java.lang.Thread.run(Thread.java:748)
      
      

      Should instead give some kind of "I don't know what this host is 'foobar.example.com'" and maybe a debug message with what hosts were in the cluster.

      Attachments

        Issue Links

          Activity

            People

              busbey Sean Busbey
              busbey Sean Busbey
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: