[ 
https://issues.apache.org/jira/browse/HBASE-19900?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chia-Ping Tsai updated HBASE-19900:
-----------------------------------
    Description: 
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.

  was:
The inconsistency includes the following bug.

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.


> 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: Minor
>
> 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)

Reply via email to