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)