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

Varun Sharma commented on HBASE-8285:
-------------------------------------

I attached v4 for 0.94 with Nicholas' comment incorporated into it.

[~te...@apache.org] - I still need make similar changes for trunk and attach a 
patch. Will do that today...

Thanks
Varun
                
> HBaseClient never recovers for single HTable.get() calls with no retries when 
> regions move
> ------------------------------------------------------------------------------------------
>
>                 Key: HBASE-8285
>                 URL: https://issues.apache.org/jira/browse/HBASE-8285
>             Project: HBase
>          Issue Type: Bug
>          Components: Client
>    Affects Versions: 0.94.6.1
>            Reporter: Varun Sharma
>            Assignee: Varun Sharma
>            Priority: Critical
>             Fix For: 0.98.0, 0.94.7, 0.95.1
>
>         Attachments: 8285-0.94.txt, 8285-0.94-v2.txt, 8285-0.94-v3.txt, 
> 8285-0.94-v4.txt, 8285-trunk.txt, 8285-trunk-v2.txt
>
>
> Steps to reproduce this bug:
> 1) Gracefull restart a region server causing regions to get redistributed.
> 2) Client call to this region keeps failing since Meta Cache is never purged 
> on the client for the region that moved.
> Reason behind the bug:
> 1) Client continues to hit the old region server.
> 2) The old region server throws NotServingRegionException which is not 
> handled correctly and the META cache entries are never purged for that server 
> causing the client to keep hitting the old server.
> The reason lies in ServerCallable code since we only purge META cache entries 
> when there is a RetriesExhaustedException, SocketTimeoutException or 
> ConnectException. However, there is no case check for 
> NotServingRegionException(s).
> Why is this not a problem for Scan(s) and Put(s) ?
> a) If a region server is not hosting a region/scanner, then an 
> UnknownScannerException is thrown which causes a relocateRegion() call 
> causing a refresh of the META cache for that particular region.
> b) For put(s), the processBatchCallback() interface in HConnectionManager is 
> used which clears out META cache entries for all kinds of exceptions except 
> DoNotRetryException.

--
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