[ https://issues.apache.org/jira/browse/HBASE-5974?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13280709#comment-13280709 ]
Anoop Sam John commented on HBASE-5974: --------------------------------------- Thanks for the review Todd {quote} why do we need the new RegionScannerWithCookie class? why not add the cookie to RegionScanner itself? {quote} I was also thinking initially in this way. There are 2 reasons why I have avoided to do the seqNo work within the RegionScanner 1. In case of the caching>1 there will be more than one call to the RegionScanner.next(). U mean passing the client sent seqNo ( I am avoiding cookie as I agree with you to rename this ) to the RegionScanner which will change the interface. This is exposed 2. This is the main reason. With the CP usage we have exposed the RegionScanner and using the preScannerOpen() and postScannerOpen() impls user can now return his own RegionScanner impl. If we do this seqNo maintain and check logics in RegionScanner this will make the user to worry abt these? I feel this should be handled by HBase core code. What do u say? {quote} this isn't currently compatible with 0.94, since a new client wouldn't be able to scan an old server. {quote} Agree.. I can fix this {quote} let's rename "cookie" to "callSequenceNumber" {quote} Already agreed.. :) {quote} In the test, I think you should use HRegionInterface directly, so you don't have to actually generate an RPC timeout. {quote} I thought of an E2E FT case.. Yes as u said the other one also I can write. So what is your recommendation? Should I change? {quote} As is, I think it's also not guaranteed to trigger the issue unless you set scanner caching to 1, right? {quote} May be in that case I can explicitly set the caching=1 for this test case. I can do that > Scanner retry behavior with RPC timeout on next() seems incorrect > ----------------------------------------------------------------- > > Key: HBASE-5974 > URL: https://issues.apache.org/jira/browse/HBASE-5974 > Project: HBase > Issue Type: Bug > Components: client, regionserver > Affects Versions: 0.90.7, 0.92.1, 0.94.0, 0.96.0 > Reporter: Todd Lipcon > Priority: Critical > Attachments: HBASE-5974_0.94.patch > > > I'm seeing the following behavior: > - set RPC timeout to a short value > - call next() for some batch of rows, big enough so the client times out > before the result is returned > - the HConnectionManager stuff will retry the next() call to the same server. > At this point, one of two things can happen: 1) the previous next() call will > still be processing, in which case you get a LeaseException, because it was > removed from the map during the processing, or 2) the next() call will > succeed but skip the prior batch of rows. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira