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

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

In Trunk patch
HRegionServer
{code}

+          // if callSeq does not match throw Exception straight away. This 
needs to be performed
+          // even before checking of Lease.
+          if (rsh == null) {
+            rsh = scanners.get(scannerName);
+          }
+          if (rsh != null) {
+            if (request.getCallSeq() != rsh.callSeq) {
+              throw new CallSequenceOutOfOrderException("Expected seq: " + 
rsh.callSeq
+                  + " But the seq got from client: " + request.getCallSeq());
+            }
+            // Increment the callSeq value which is the next expected from 
client.
+            rsh.callSeq++;
+          }
{code}
Here we need to check whether the callSeq is present in the ScanRequest or not. 
If it is present then only we can do the comparison. I have noticed this and 
will a patch V2 on Trunk with this change soon
                
> 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, 0.94.1
>
>         Attachments: 5974_94-V4.patch, 5974_trunk.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: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to