hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lars George (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HBASE-2029) Reduce shell exception dump on console
Date Sat, 05 Dec 2009 17:09:20 GMT

    [ 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:

  public static IOException decodeRemoteException(final RemoteException re)
  throws IOException {
    IOException i = re;
      Object[] arguments = { re.getMessage() };
      Throwable t = (Throwable) ctor.newInstance(arguments);

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 

        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) 

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
> {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.

View raw message