You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Matteo Bertozzi (JIRA)" <ji...@apache.org> on 2015/07/19 04:02:04 UTC

[jira] [Commented] (HBASE-14119) Show meaningful error messages instead of stack traces in hbase shell commands. Fixing few commands in this jira.

    [ https://issues.apache.org/jira/browse/HBASE-14119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14632660#comment-14632660 ] 

Matteo Bertozzi commented on HBASE-14119:
-----------------------------------------

+1

> Show meaningful error messages instead of stack traces in hbase shell commands. Fixing few commands in this jira.
> -----------------------------------------------------------------------------------------------------------------
>
>                 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
>         Attachments: HBASE-14119.patch
>
>
> This isn't really a functional bug, just more about erroring out cleanly.
> In the future, everyone should check and catch exceptions. Meaningful error messages should be shown instead of stack traces. For debugging purposes, 'hbase shell -d' can be used which outputs a detailed stack trace.
> * 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)