hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hudson (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-4051) [Coprocessors] Table coprocessor loaded twice when region is initialized
Date Fri, 01 Jul 2011 05:19:30 GMT

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

Hudson commented on HBASE-4051:

Integrated in HBase-TRUNK #1999 (See [https://builds.apache.org/job/HBase-TRUNK/1999/])
    HBASE-4051 Table coprocessor loaded twice when region is initialized

apurtell : 
Files : 
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java
* /hbase/trunk/CHANGES.txt

> [Coprocessors] Table coprocessor loaded twice when region is initialized
> ------------------------------------------------------------------------
>                 Key: HBASE-4051
>                 URL: https://issues.apache.org/jira/browse/HBASE-4051
>             Project: HBase
>          Issue Type: Bug
>          Components: coprocessors
>    Affects Versions: 0.92.0
>         Environment: Ubuntu 11.04 64-bit
>            Reporter: Terry Siu
>            Assignee: Andrew Purtell
>             Fix For: 0.92.0
>         Attachments: HBASE-4051.patch
> I'm debugging a prePut hook which I've implemented as part of the coprocessor work being
developed. This hook is loaded via a table COPROCESSOR attribute and I've noticed that the
prePut method is being called twice for a single Put. After setting up the region server to
run in a debugger, I'm noticing the call to loadTableCoprocessors() being invoked twice during
region initialization, specifically: 
> 1.       HRegion.init => RegionCoprocessorHost.init => RegionCoprocessorHost.loadTableCoprocessors

> 2.       ... => RegionCoprocessorHost.preOpen => RegionCoprocessorHost.loadTableCoprocessors

> This results in two RegionEnvironment instances, each containing a new instance of my
coprocessor, being added to the RegionCoprocessorHost. When I issue a put, the list of RegionEnvironments
is iterated over and each calls the prePut method in my coprocessor. Reason why this is posing
a problem for me is that I modify the family map passed in to my prePut method. Since this
family map is the same instance used in both prePut calls, the second prePut call operates
on the modified family map, which leads to an unexpected result. 
> Is the double loading of the same coprocessor class intentional, is this a bug?

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


View raw message