[
https://issues.apache.org/jira/browse/HBASE-13896?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14972286#comment-14972286
]
Enis Soztutar commented on HBASE-13896:
---------------------------------------
>From my reading of {{AsyncProcess.receiveGlobalFailure()}} and
>{{ConnectionImplementation.updateCachedLocations()}}, it can happen that if a
>batch of actions went to the RS, and the first action's row and region is
>correct, but not the others we can still fail to invalidate the cache
>properly. But without a unit test, it is not easy to verify this.
> Multi-actions in hbase-client could fall in dead loop when region moves.
> ------------------------------------------------------------------------
>
> Key: HBASE-13896
> URL: https://issues.apache.org/jira/browse/HBASE-13896
> Project: HBase
> Issue Type: Bug
> Components: Client
> Affects Versions: 0.98.13
> Reporter: Victor Xu
> Assignee: Victor Xu
> Priority: Minor
> Fix For: 0.98.16
>
> Attachments: HBASE-13896-0.98-v1.patch
>
>
> The code in AsyncProcess.receiveGlobalFailure() use only one row to update
> region cache in hbase-client. When we use HTable.put(List<Put>) api to write
> some data which are from different regions and some of them are
> moved/balanced while writing, the client may fall into a dead loop:
> multi-actions fails because some regions moved => update only one region
> cache(not the wrong ones) => resubmit => failed again.
> It only happens in 0.98 branch, and the master branch is ok.
> The patch followed should update all cached region locations when
> multi-actions fails.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)