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

chunhui shen commented on HBASE-5974:
-------------------------------------

bq. I tested once more with change in test code so as to sleep all the times.
Anoop, if change as so, you can't produce my mentioned problem.

Do the following change in the test case TestClientScannerRPCTimeout, you could 
find we will retry forever
{code}
@Override
    public Result[] next(long scannerId, int nbRows, long callSeq) throws 
IOException {
      if (!slept && this.tableScannerId == scannerId && seqNoToSleepOn == 
callSeq) {
        throw new CallSequenceOutOfOrderException("Test");
        // try {
        // Thread.sleep(rpcTimeout + 500);
        // } catch (InterruptedException e) {
        // }
        // slept = true;
      }
      return super.next(scannerId, nbRows, callSeq);
    }
{code}

Wait for your answer, thanks
                
> 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
>            Assignee: Anoop Sam John
>            Priority: Critical
>             Fix For: 0.96.0
>
>         Attachments: 5974_94-V4.patch, 5974_trunk.patch, 5974_trunk-V2.patch, 
> 5974_trunk-V3.patch, HBASE-5974_0.94.patch, HBASE-5974_94-V2.patch, 
> HBASE-5974_94-V3.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
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to