hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Enis Soztutar (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-17800) [C++] handle exceptions in client RPC
Date Tue, 21 Mar 2017 00:10:41 GMT

    [ 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: 
- In RemoteException, you might as well carry the whole PB object, and not deal with setting
individual fields. 
- Why not return a string here? 
const char* what()
- 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

View raw message