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

Enis Soztutar commented on HBASE-17800:
---------------------------------------

Thanks for the patch. 
- Remove this: 
{code}
+private:
+
  private:
{code}
- In RemoteException, you might as well carry the whole PB object, and not deal 
with setting individual fields. 
- Why not return a string here? 
{code}
const char* what()
{code}
- Exceptions can be raised from the server side, where it gets re-thrown as 
RemoteExceptions or ServiceExceptions in the rpc layer, however, in the 
retrying callers, these get un-wrapped and rethrown again as the cause of the 
exception. That is why we rely on the DoNotRetryException in the exception 
hierarchy. Will we need to be able to throw DoNotRetryExceptions from purely 
the client side? I think so (like for example when operation timeouts or 
something). In this case, maybe we should instead do something like this: all 
exceptions in HBase client side will be instances of IOException or 
HBaseException or something. We add the {{do_not_retry()}} method there which 
returns false by default, and we get rid of DoNotRetryException. 
RemoteException just returns the do_not_retry() from the server side. In this 
case, we will not need to depend on exception hierarchy like we do on the java 
side. 
- You have both {{remoteException}} and {{remote_exception}} which is pretty 
confusing. Better to not allocate objects by new. 

> [C++] handle exceptions in client RPC
> -------------------------------------
>
>                 Key: HBASE-17800
>                 URL: https://issues.apache.org/jira/browse/HBASE-17800
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Xiaobing Zhou
>            Assignee: Xiaobing Zhou
>         Attachments: HBASE-17800-HBASE-14850.000.patch
>
>
> Exceptions are ignored in current client RPC. They should be handled properly 
> to be consumed by RPC retry or propagated up to APIs.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to