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

Enis Soztutar commented on HBASE-18078:
---------------------------------------

Thanks [~xiaobingo] for the updated patch. 
As we were talking offline, we are not gonna do ConnectionRetryPolicy. Upper 
level retrying from Rpc Retrying Callers will work just fine for 
re-establishing the connection. 
{code}
+ * TODO:
+ * This function should plug in ConnectionRetryPolicy to handle:
+
{code}
- We can do this as VLOG(1): 
{code}
+          VLOG(3) << folly::sformat("RpcClient Exception: {}", ew.what());
{code}
- Do we need to catch the AsyncSocketException at this level as well: 
{code}
+    return GetConnection(remote_id)
+        ->SendRequest(std::move(req))
+        .onError([&, this](const folly::exception_wrapper& ew) {
{code}
or below layers already handle it in every case and rethrow it as 
ConnectionException. 

Other than these, patch looks good. We need the unit tests for committing it. 


> [C++] Harden RPC by handling various communication abnormalities
> ----------------------------------------------------------------
>
>                 Key: HBASE-18078
>                 URL: https://issues.apache.org/jira/browse/HBASE-18078
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Xiaobing Zhou
>            Assignee: Xiaobing Zhou
>         Attachments: HBASE-18078.000.patch, HBASE-18078.001.patch, 
> HBASE-18078.002.patch, HBASE-18078.003.patch, HBASE-18078.004.patch, 
> HBASE-18078.005.patch, HBASE-18078.006.patch, HBASE-18078.007.patch
>
>
> RPC layer should handle various communication abnormalities (e.g. connection 
> timeout, server aborted connection, and so on). Ideally, the corresponding 
> exceptions should be raised and propagated through handlers of pipeline in 
> client.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to