[
https://issues.apache.org/jira/browse/HBASE-8285?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13632560#comment-13632560
]
Hudson commented on HBASE-8285:
-------------------------------
Integrated in HBase-TRUNK #4066 (See
[https://builds.apache.org/job/HBase-TRUNK/4066/])
HBASE-8285 HBaseClient never recovers for single HTable.get() calls with no
retries when regions move (Varun Sharma) (Revision 1468221)
Result = FAILURE
larsh :
Files :
*
/hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HConnection.java
*
/hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java
*
/hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ServerCallable.java
> 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-0.94-v5.txt, 8285-0.94-v6.txt, 8285-0.95.txt,
> 8285-trunk.txt, 8285-trunk-v2.txt, 8285-trunk-v3.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