[ https://issues.apache.org/jira/browse/HBASE-19047?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16220764#comment-16220764 ]
Hadoop QA commented on HBASE-19047: ----------------------------------- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 0s{color} | {color:blue} Docker mode activated. {color} | | {color:red}-1{color} | {color:red} docker {color} | {color:red} 1m 3s{color} | {color:red} Docker failed to build yetus/hbase:eee3b01. {color} | \\ \\ || Subsystem || Report/Notes || | JIRA Issue | HBASE-19047 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12894109/HBASE-19047_V3.patch | | Console output | https://builds.apache.org/job/PreCommit-HBASE-Build/9412/console | | Powered by | Apache Yetus 0.4.0 http://yetus.apache.org | This message was automatically generated. > CP exposed Scanner types should not extend Shipper > -------------------------------------------------- > > Key: HBASE-19047 > URL: https://issues.apache.org/jira/browse/HBASE-19047 > Project: HBase > Issue Type: Sub-task > Components: Coprocessors > Reporter: Anoop Sam John > Assignee: Anoop Sam John > Fix For: 2.0.0-alpha-4 > > Attachments: HBASE-19047.patch, HBASE-19047_V2.patch, > HBASE-19047_V2.patch, HBASE-19047_V3.patch > > > Shipper is a IA.Private interface and very much internal.. > Right now CP exposed RegionScanner is extending this and so exposing the > shipped() method. This by mistake is called, can harm the correctness of the > cells in the Results. > preScannerOpen() allowing to return a new Scanner is also problematic now. > This can allow users to create a Region scanner from Region and then wrap it > and return back (Well same can be done by postScannerOpen also), it can so > happen that the wrapper is not implementing the shipped() properly. In any > way exposing the shipped () is problematic. > Solution Steps > 1. Remove preScannerOpen() , the use case I can think of is wrapping the > original scanner. The original scanner can be created by Region.getScanner > way only.. May be no need to remove this hook. Just remove the ability for > it to return a RegionScanner instance. Call this with the Scan object and > the CP can change the Scan object if they want. > 2. Let RegionScanner not extending Shipper but only RegionScannerImpl > implements this > 3. We have ref to the RegionScanner created by core and let that be used by > RegionScannerShippedCallBack when the post hook doing a wrap. -- This message was sent by Atlassian JIRA (v6.4.14#64029)