[ 
https://issues.apache.org/jira/browse/HBASE-8036?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13600252#comment-13600252
 ] 

Sergey Shelukhin commented on HBASE-8036:
-----------------------------------------

bq. +                hci.updateCachedLocations(tableName, row, null, 
currentTask.getSecond());
I am not sure updateCachedLocations expects null now.

{code}
           for (int i = 0, n = results.size(); i < n; i++) {
             int originalIndex = actions.get(i).getOriginalIndex();
             response.add(regionName, originalIndex, results.get(i));
           }
+        } catch (ServiceException se) {
+          for (int i = 0, n = actions.size(); i < n; i++) {
+           response.add(regionName, actions.get(i).getOriginalIndex(), 
getRemoteException(se));
+          }
{code}
Loop could be moved to one place.

bq. +    
Assert.assertFalse(curServer.getServerName().equals(destServer.getServerName()));
bq. +    Assert.assertFalse( toMove.getPort() == destServerName.getPort());
assertEquals could be used.

Much simpler test is possible by supplying mock client to multi, although I 
guess that wouldn't test serialization of RME.

                
> ProtobufUtil.multi behavior is inconsistent in case of errors
> -------------------------------------------------------------
>
>                 Key: HBASE-8036
>                 URL: https://issues.apache.org/jira/browse/HBASE-8036
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.95.0
>            Reporter: Sergey Shelukhin
>            Assignee: Enis Soztutar
>            Priority: Blocker
>             Fix For: 0.95.0
>
>         Attachments: hbase-8036_v1.patch, hbase-8036_v2.patch
>
>
> ProtobufUtil splits operations by regions and performs multiple client.multi 
> calls. In case if there are certain errors inside RS, HRegionServer adds the 
> corresponding exceptions to MultiResponse, PU continues the multi request for 
> other regions, and returns partial failure. 
> In case of other errors (for example, region not served exception), the 
> entire multi operation stops executing, and previous successes and partial 
> results are disregarded.
> ProtobufUtil should probably catch ServiceException separately for each 
> client.multi call, make it a partial-failure exception for all actions for 
> this region, and also continue the batch, to make the behavior consistent.
> Alternatively, if we want to avoid continuing the batch in case of some 
> server-wide errors/connection problems/etc., server should do that for 
> region-specific errors (add exception to results for each action).

--
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

Reply via email to