You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Anoop Sam John (JIRA)" <ji...@apache.org> on 2013/12/23 06:03:54 UTC

[jira] [Commented] (HBASE-10225) Bug in calls to RegionObsever.postScannerFilterRow

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

Anoop Sam John commented on HBASE-10225:
----------------------------------------

It is still used by HIndex. Correct [~rajesh23]?
We never needed the current row and was not using that at all. So not noticed this issue. :(
+1 for correcting this in all versions.

This will be called when the filter filters out the row. So your test is like filtering out most of the rows Lars?


> Bug in calls to RegionObsever.postScannerFilterRow
> --------------------------------------------------
>
>                 Key: HBASE-10225
>                 URL: https://issues.apache.org/jira/browse/HBASE-10225
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Lars Hofhansl
>             Fix For: 0.98.0, 0.94.16, 0.96.2, 0.99.0
>
>
> Just noticed that while looking at HBASE-10047.
> In 0.94 (and presumably in trunk, will check later) we have this:
> {code}
>     protected boolean nextRow(byte [] currentRow, int offset, short length) throws IOException {
>      ...
>       if (this.region.getCoprocessorHost() != null) {
>         return this.region.getCoprocessorHost().postScannerFilterRow(this, currentRow);
>       }
>       return true;
>     }
> {code}
> Notice how we only pass currentRow into the coprocessor, but not offset and length. Anything using this hook currently is 100% broken. The hook was added in 0.94.5 (HBASE-5664), it never worked correctly.
> [~anoopsamjohn], you had added the hook. Do you still need it?
> We can either remove it (I'd prefer that in the light of the performance issued observed in HBASE-10047, we can leave the stub in BaseRegionObserver in 0.94, but document that it is no-op), or we'd have to have change its signature to be able to pass offset and length as well. 
> Since nobody noticed nobody is using this hook currently, so both should be valid options.
> (Making a new standalone copy of the rowkey just to pass into this method absolutely out of the question for performance reasons).



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)