hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Purtell (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-4014) Coprocessors: Flag the presence of coprocessors in logged exceptions
Date Sun, 26 Jun 2011 18:29:47 GMT

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

Andrew Purtell commented on HBASE-4014:

@Eugene Your patch doesn't do what was described in earlier comments on this issue. Instead
it tidies up how exception handling is done in the coprocessor framework. But actually I think
it achieves the intent here without touching code "outside" the coprocessor framework as a
bonus, so I'm happy to +1 this approach. 

But you cannot catch all exceptions and abort. This breaks AccessController for example --
with this patch in place an {{AccessDeniedException}} would abort the RegionServer or Master
process. There are many valid cases where a coprocessor will want to throw an exception back
to the client. Instead, you should:

- Replace all instances of {{catch (Exception e)}} with {{catch (Throwable t)}}

- Rethrow any {{java.lang.IOException}} or subclass thereof, testing with the instanceof operator.

- Otherwise call {{abort()}}

This perpetuates the HBase idiom that {{IOException}} is special and all user exceptions must
be subclassed from it in order for HBase to do the right thing, but that is already baked
into the code in many places.

> Coprocessors: Flag the presence of coprocessors in logged exceptions
> --------------------------------------------------------------------
>                 Key: HBASE-4014
>                 URL: https://issues.apache.org/jira/browse/HBASE-4014
>             Project: HBase
>          Issue Type: Improvement
>          Components: coprocessors
>            Reporter: Andrew Purtell
>            Assignee: Eugene Koontz
>             Fix For: 0.92.0
>         Attachments: HBASE-4014.patch
> For some initial triage of bug reports for core versus for deployments with loaded coprocessors,
we need something like the Linux kernel's taint flag, and list of linked in modules that show
up in the output of every OOPS, to appear above or below exceptions that appear in the logs.

This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


View raw message