[
https://issues.apache.org/jira/browse/HBASE-11126?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14013650#comment-14013650
]
Hadoop QA commented on HBASE-11126:
-----------------------------------
{color:red}-1 overall{color}. Here are the results of testing the latest
attachment
http://issues.apache.org/jira/secure/attachment/12647587/HBASE-11126_5.patch
against trunk revision .
ATTACHMENT ID: 12647587
{color:green}+1 @author{color}. The patch does not contain any @author
tags.
{color:green}+1 tests included{color}. The patch appears to include 6 new
or modified tests.
{color:green}+1 javac{color}. The applied patch does not increase the
total number of javac compiler warnings.
{color:green}+1 javadoc{color}. The javadoc tool did not generate any
warning messages.
{color:green}+1 findbugs{color}. The patch does not introduce any new
Findbugs (version 1.3.9) warnings.
{color:green}+1 release audit{color}. The applied patch does not increase
the total number of release audit warnings.
{color:red}-1 lineLengths{color}. The patch introduces the following lines
longer than 100:
+ final Cell cell, final byte[] byteNow, final byte[] family, final
Get get) throws IOException {
+ public Result
preAppendAfterRowLock(ObserverContext<RegionCoprocessorEnvironment> e, Append
append)
{color:green}+1 site{color}. The mvn site goal succeeds with this patch.
{color:red}-1 core tests{color}. The patch failed these unit tests:
org.apache.hadoop.hbase.regionserver.TestEncryptionKeyRotation
Test results:
https://builds.apache.org/job/PreCommit-HBASE-Build/9648//testReport/
Findbugs warnings:
https://builds.apache.org/job/PreCommit-HBASE-Build/9648//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-examples.html
Findbugs warnings:
https://builds.apache.org/job/PreCommit-HBASE-Build/9648//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html
Findbugs warnings:
https://builds.apache.org/job/PreCommit-HBASE-Build/9648//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-prefix-tree.html
Findbugs warnings:
https://builds.apache.org/job/PreCommit-HBASE-Build/9648//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-thrift.html
Findbugs warnings:
https://builds.apache.org/job/PreCommit-HBASE-Build/9648//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html
Findbugs warnings:
https://builds.apache.org/job/PreCommit-HBASE-Build/9648//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-client.html
Findbugs warnings:
https://builds.apache.org/job/PreCommit-HBASE-Build/9648//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop2-compat.html
Findbugs warnings:
https://builds.apache.org/job/PreCommit-HBASE-Build/9648//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html
Findbugs warnings:
https://builds.apache.org/job/PreCommit-HBASE-Build/9648//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-protocol.html
Console output:
https://builds.apache.org/job/PreCommit-HBASE-Build/9648//console
This message is automatically generated.
> Add RegionObserver pre hooks that operate under row lock
> --------------------------------------------------------
>
> Key: HBASE-11126
> URL: https://issues.apache.org/jira/browse/HBASE-11126
> Project: HBase
> Issue Type: Improvement
> Affects Versions: 0.99.0, 0.98.3
> Reporter: Andrew Purtell
> Assignee: ramkrishna.s.vasudevan
> Attachments: HBASE-11126.patch, HBASE-11126_1.patch,
> HBASE-11126_4.patch, HBASE-11126_5.patch, HBASE-11126_new_2.patch,
> HBASE-11126_new_3.patch
>
>
> The coprocessor hooks were placed outside of row locks. This was meant to
> sidestep performance issues arising from significant work done within hook
> invocations. However as the security code increases in sophistication we are
> now running into concurrency issues trying to use them as a result of that
> early decision. Since the initial introduction of coprocessor upcalls there
> has been some significant refactoring done around them and concurrency
> control in core has become more complex. This is potentially an issue for
> many coprocessor users.
> We should do either:\\
> - Move all existing RegionObserver pre* hooks to execute under row lock.
> - Introduce a new set of RegionObserver pre* hooks that execute under row
> lock, named to indicate such.
> The second option is less likely to lead to surprises.
> All RegionObserver hook Javadoc should be updated with advice to the
> coprocessor implementor not to take their own row locks in the hook. If the
> current thread happens to already have a row lock and they try to take a lock
> on another row, there is a deadlock risk.
> As always a drawback of adding hooks is the potential for performance impact.
> We should benchmark the impact and decide if the second option above is a
> viable choice or if the first option is required.
> Finally, we should introduce a higher level interface for managing the
> registration of 'user' code for execution from the low level hooks. I filed
> HBASE-11125 to discuss this further.
--
This message was sent by Atlassian JIRA
(v6.2#6252)