[
https://issues.apache.org/jira/browse/HBASE-11423?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14057185#comment-14057185
]
Anoop Sam John commented on HBASE-11423:
----------------------------------------
I think MultiRowMutationProcessor and the HRegion#batchMutate() methods should
work similar way wrt CPs.
But that is not the case now.
eg:
preProcess() when processing a Mutation - The CP hook can say bypass() the
actual op. In case of HRegion#batchMutate() if this happens for a Mutation,
that mutation wont continue with apply to memstore, waledit etc. And the other
mutations will continue with normal steps.
But in case of MultiRowMutationProcessor
even if the pre hook bypass a Mutation, still that will go on and apply to
memstore. Only the pre calls for the remaining Mutations are bypassed.
{code}
public void preProcess(HRegion region, WALEdit walEdit) throws IOException {
RegionCoprocessorHost coprocessorHost = region.getCoprocessorHost();
if (coprocessorHost != null) {
for (Mutation m : mutations) {
if (m instanceof Put) {
if (coprocessorHost.prePut((Put) m, walEdit, m.getDurability())) {
// by pass everything
return;
}
} else if (m instanceof Delete) {
Delete d = (Delete) m;
region.prepareDelete(d);
if (coprocessorHost.preDelete(d, walEdit, d.getDurability())) {
// by pass everything
return;
}
}
}
}
}
{code}
IMO this is a bug with MultiRowMutationProcessor and should be handled in
another jira. Thoughts?
> Visibility label and per cell ACL feature not working with HTable#mutateRow()
> and MultiRowMutationEndpoint
> ----------------------------------------------------------------------------------------------------------
>
> Key: HBASE-11423
> URL: https://issues.apache.org/jira/browse/HBASE-11423
> Project: HBase
> Issue Type: Bug
> Components: Coprocessors, security
> Affects Versions: 0.98.0
> Reporter: Anoop Sam John
> Assignee: Anoop Sam John
> Priority: Blocker
> Fix For: 0.99.0, 1.0.0, 0.98.4
>
> Attachments: HBASE-11423.patch
>
>
> This is because pre/postBatchMutate() APIs are not getting called from
> HRegion#processRowsWithLocks()
--
This message was sent by Atlassian JIRA
(v6.2#6252)