[
https://issues.apache.org/jira/browse/HBASE-15417?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15185788#comment-15185788
]
Andrew Purtell commented on HBASE-15417:
----------------------------------------
bq. I called bypass on 3 of them, including the very first put in the batch.
All 4 puts made it to the postPut hook.
Agreed this looks wrong. It might be wrong in the larger sense in that the
bypass didn't take effect. It might be wrong in appearance only in that the
post hook is called even though other core code actions were bypassed. We need
to look into it.
bq. Also would you mind pointing me to documentation on bypass being a
per-operation setting. I'm only asking because when I first noticed this
behavior, I tried to dig around and see what the correct behavior was, but I
had trouble finding anything definitive.
The definitive information is supposed to be in the per-hook javadoc.
bq. it is possible that this is a bug in the HBaseTestingUtility
The problem is most likely not there.
> Calls to ObserverContext#bypass in a region observer's prePut method are
> inconsistent
> -------------------------------------------------------------------------------------
>
> Key: HBASE-15417
> URL: https://issues.apache.org/jira/browse/HBASE-15417
> Project: HBase
> Issue Type: Bug
> Components: Coprocessors
> Reporter: Harry Harpham
> Priority: Minor
>
> Calling ctx.bypass(), where ctx is the ObserverContext object passed in to
> the region observer's prePut method, results in some inconsistent behavior.
> If every other put in the batch is also bypassed, the region observer sees
> none of these in its postPut method. If there is at least one other put
> which is not bypassed, the region observer sees all of the puts in the batch
> _including those which were bypassed_.
> The end result is that, after bypassing a put, that put may or may not end up
> in the region observer's postPut method. This behavior is dependent solely
> on which other puts the bypassed put is batched together with.
> I tried to find existing tickets for this issue, but was unable to.
> Apologies if I missed something. The closest issues I could find were
> HBASE-4331 and HBASE-11503, but those didn't seem to quite hit it.
> Additionally, I threw together a quick demonstration of this issue:
> https://github.com/hwh33/bypass-inconsistency-demo. You can run that demo in
> memory using the testing utility or against a running cluster. I actually
> haven't had time to test it against a cluster though, so you may encounter
> bugs if running in that mode (but hopefully not!).
>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)