You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Enis Soztutar (JIRA)" <ji...@apache.org> on 2017/03/21 00:10:41 UTC

[jira] [Commented] (HBASE-17800) [C++] handle exceptions in client RPC

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