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

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 3.0.0, 2.1.0, 2.2.0, 2.3.0
    • Fix Version/s: 3.0.0, 2.3.0, 2.1.7, 2.2.2
    • Component/s: None
    • Labels:
      None
    • Release Note:
      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

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

                Dates

                • Created:
                  Updated:
                  Resolved: