Apekshit Sharma created HBASE-14119:
---------------------------------------

             Summary: Show error message instead of stack traces in hbase shell 
commands
                 Key: HBASE-14119
                 URL: https://issues.apache.org/jira/browse/HBASE-14119
             Project: HBase
          Issue Type: Bug
            Reporter: Apekshit Sharma
            Assignee: Apekshit Sharma
            Priority: Minor


This isn't really a functional bug, just more about erroring out cleanly.

* the shell commands assign, move, unassign and merge_region can throw the 
following error if given an invalid argument:
{noformat}

hbase(main):032:0> unassign 'adsfdsafdsa'

ERROR: org.apache.hadoop.ipc.RemoteException: 
org.apache.hadoop.hbase.UnknownRegionException: adsfdsafdsa
        at org.apache.hadoop.hbase.master.HMaster.unassign(HMaster.java:1562)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at 
org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:364)
        at 
org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1336)

Here is some help for this command:
Unassign a region. Unassign will close region in current location and then
reopen it again.  Pass 'true' to force the unassignment ('force' will clear
all in-memory state in master before the reassign. If results in
double assignment use hbck -fix to resolve. To be used by experts).
Use with caution.  For expert use only.  Examples:

  hbase> unassign 'REGIONNAME'
  hbase> unassign 'REGIONNAME', true


hbase(main):033:0> 
{noformat}

* drop_namespace, describe_namespace throw stack trace too.
{noformat}
hbase(main):002:0> drop_namespace "SDf"

ERROR: org.apache.hadoop.hbase.NamespaceNotFoundException: SDf
        at 
org.apache.hadoop.hbase.master.TableNamespaceManager.remove(TableNamespaceManager.java:175)
        at 
org.apache.hadoop.hbase.master.HMaster.deleteNamespace(HMaster.java:2119)
        at 
org.apache.hadoop.hbase.master.MasterRpcServices.deleteNamespace(MasterRpcServices.java:430)
        at 
org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java:44279)
        at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2035)
        at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:107)
        at 
org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:130)
        at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:107)
        at java.lang.Thread.run(Thread.java:745)

Here is some help for this command:
Drop the named namespace. The namespace must be empty.
{noformat}

* fix error message in close_region
{noformat}
hbase(main):007:0> close_region "sdf"

ERROR: sdf
{noformat}

* delete_snapshot throws exception too.
{noformat}
ERROR: org.apache.hadoop.hbase.snapshot.SnapshotDoesNotExistException: Snapshot 
'sdf' doesn't exist on the filesystem
        at 
org.apache.hadoop.hbase.master.snapshot.SnapshotManager.deleteSnapshot(SnapshotManager.java:270)
        at 
org.apache.hadoop.hbase.master.MasterRpcServices.deleteSnapshot(MasterRpcServices.java:452)
        at 
org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java:44261)
        at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2035)
        at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:107)
        at 
org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:130)
        at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:107)
        at java.lang.Thread.run(Thread.java:745)

Here is some help for this command:
Delete a specified snapshot. Examples:

  hbase> delete_snapshot 'snapshotName',
{noformat}

other commands, when given bogus arguments, tend to fail cleanly and not leave 
stacktrace in the output.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to