Details
Description
HBaseAdmin administrative functions allow tableName or regionName through the API. Things are okay if we pass tableName, but when using regionName the code in HMaster is incorrect. It is expecting to be passed tableName and startRow, but we are passing null and regionName. Patch will fix master to handle this case properly.
Log for good measure:
[hbase@mb0 StyBase]$ java TableMaintenance chunks Running maintenance on table 'chunks' Table contains 2 regions > Flushing region {chunks,,1229390225893} EXCEPTION FLUSHING REGION! [org.apache.hadoop.ipc.RemoteException: java.io.IOException: Invalid arguments to openScanner at org.apache.hadoop.hbase.regionserver.HRegionServer.openScanner(HRegionServer.java:1695) at sun.reflect.GeneratedMethodAccessor16.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at org.apache.hadoop.hbase.ipc.HBaseRPC$Server.call(HBaseRPC.java:632) at org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:895) Caused by: java.lang.NullPointerException: firstRow for scanner is null at org.apache.hadoop.hbase.regionserver.HRegionServer.openScanner(HRegionServer.java:1692) ... 5 more at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:701) at org.apache.hadoop.hbase.ipc.HBaseRPC$Invoker.invoke(HBaseRPC.java:321) at $Proxy2.openScanner(Unknown Source) at org.apache.hadoop.hbase.master.HMaster.getTableRegionClosest(HMaster.java:725) at org.apache.hadoop.hbase.master.HMaster.modifyTable(HMaster.java:804) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at org.apache.hadoop.hbase.ipc.HBaseRPC$Server.call(HBaseRPC.java:632) at org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:895) ]