hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Todd Lipcon (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-5974) Scanner retry behavior with RPC timeout on next() seems incorrect
Date Sun, 20 May 2012 07:26:41 GMT

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

Todd Lipcon commented on HBASE-5974:

- style: use 2-space indentation, not tabs
- why do we need the new RegionScannerWithCookie class? why not add the cookie to RegionScanner
itself? I'd also move the cookie check into a function "scanner.checkAndIncrementCookie(cookie);"
- let's rename "cookie" to "callSequenceNumber" or something -- since in this implementation
it is a simple increasing sequence.
- this isn't currently compatible with 0.94, since a new client wouldn't be able to scan an
old server. In order to make it compatible, we'd need to catch the MethodNotExists exception
and set a flag in the client which disables cookie usage for that cluster.
- In the test, I think you should use HRegionInterface directly, so you don't have to actually
generate an RPC timeout. As is, I think it's also not guaranteed to trigger the issue unless
you set scanner caching to 1, right? I guess that's the default, but if we ever change the
default, it would invalidate this test.

> 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


View raw message