You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Chia-Ping Tsai (JIRA)" <ji...@apache.org> on 2018/02/03 11:49:00 UTC
[jira] [Commented] (HBASE-19900) Region-level exception destroy the
result of batch
[ https://issues.apache.org/jira/browse/HBASE-19900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16351372#comment-16351372 ]
Chia-Ping Tsai commented on HBASE-19900:
----------------------------------------
The patch merge the check of action-level exception and region-lever exception. If the action fail without any exception, we assign the region-level exception to it. If no region-level exception exists, we assign a unknown error instead. In short, each action won't be handled repeatedly so the following issues should be fixed.
# decrease action count repeatedly
# the successive result will be overwrited
# The failed op is added to RetriesExhaustedWithDetailsException repeatedly
The patch also add some debug info to trace the overwrite of result and exception.
> Region-level exception destroy the result of batch
> --------------------------------------------------
>
> Key: HBASE-19900
> URL: https://issues.apache.org/jira/browse/HBASE-19900
> Project: HBase
> Issue Type: Bug
> Reporter: Chia-Ping Tsai
> Assignee: Chia-Ping Tsai
> Priority: Critical
> Fix For: 1.3.2, 1.5.0, 1.2.7, 2.0.0-beta-2, 1.4.2
>
> Attachments: HBASE-19900.v0.patch
>
>
> 1) decrease action count repeatedly
> If the AsyncRequestFuture#waitUntilDone return prematurely, user will get the incorrect results. Or user will be block by AsyncRequestFuture#waitUntilDone as the count is never equal with 0.
> 2) the successive result will be overwrited
> 3) The failed op is added to RetriesExhaustedWithDetailsException repeatedly
> AsyncRequestFutureImpl#receiveMultiAction process the action-lever error first, and then add the region-level exception to each action. Hence, user may get the various exceptions for the same action (row op) from the RetriesExhaustedWithDetailsException.
> In fact, if both of action-level exception and region-lever exception exist, they always have the same context. I'm not sure whether that is what RetriesExhaustedWithDetailsException want. As i see it, we shouldn't have the duplicate ops in RetriesExhaustedWithDetailsException since that may confuse users if they catch the RetriesExhaustedWithDetailsException to check the invalid operations.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)