[
https://issues.apache.org/jira/browse/HBASE-2029?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12786445#action_12786445
]
Lars George commented on HBASE-2029:
------------------------------------
Apart from that I found the reason for the different output. The
TableExistsException wraps a RemoteException. This is done so:
{code}
public static IOException decodeRemoteException(final RemoteException re)
throws IOException {
IOException i = re;
...
Object[] arguments = { re.getMessage() };
Throwable t = (Throwable) ctor.newInstance(arguments);
...
{code}
The issue here is that re.getMessage() for a remote message is the stack trace!
So in the case of my "scan 'e'" test the exception message is "e" as in the
table that does not exists. But for the "create 'y', 'y'" it fails on the
master and that is wrapped into a local exception and then the message is
{code}
y
at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:793)
at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:758)
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.HBaseRPC$Server.call(HBaseRPC.java:648)
at
org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:915)
{code}
So we can either live with this or change how the RemoteException is decoded.
> Reduce shell exception dump on console
> --------------------------------------
>
> Key: HBASE-2029
> URL: https://issues.apache.org/jira/browse/HBASE-2029
> Project: Hadoop HBase
> Issue Type: Improvement
> Components: scripts
> Affects Versions: 0.20.2
> Reporter: Lars George
> Assignee: Jean-Daniel Cryans
> Priority: Minor
> Fix For: 0.21.0
>
> Attachments: HBASE-2029-hirb-v2.patch, HBASE-2029-hirb.patch,
> HBASE-2029.patch
>
>
> As discussed on IRC and seen over and over, the shell is too verbose when it
> prints Java related exceptions. The huge stack trace on the console is often
> causing more harm then actually helping.
> {noformat}
> ...
> [11:31pm] larsgeorge:
> the only concern is to keep it in sync with new changes and also reduce its
> stacktrace
> [11:31pm] larsgeorge:
> that can be quite nasty
> [11:31pm] _dodger_:
> I've seen a prime example of that on the mailing list today
> [11:32pm] larsgeorge:
> yeah, those do repeat themselves
> [11:32pm] larsgeorge:
> also that DEBUG is on by default
> [11:33pm] larsgeorge:
> mind you, that is a good idea for the daemons
> [11:33pm] larsgeorge:
> but prolly not the shell
> [11:33pm] jdcryans:
> I was thinking
> [11:33pm] larsgeorge:
> maybe we can set ERROR logging level just for the shell when it is started?
> [11:34pm] jdcryans:
> we should stop printing the stack trace for NSRE
> [11:34pm] larsgeorge:
> there are a few others of that sort
> [11:34pm] larsgeorge:
> be it ZK reconnects etc.
> [11:35pm] jdcryans:
> yeah there's a lot of hbase-generated zk-related noise
> {noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.