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

Xiaobing Zhou commented on HBASE-18078:
---------------------------------------

Coming next are:

# apply the APIs (e.g. ConnectionFactory and ConnectionPool) changes to all 
related places.
# In order to simulate various abnormal behaviors, it necessitates building a 
TestRpcServer, which can be started from samples in 
[BootstrapTest|https://github.com/facebook/wangle/blob/master/wangle/bootstrap/BootstrapTest.cpp]
# handle other abnormal cases such as defined in folly::AsyncSocketException
{code}
class AsyncSocketException : public std::runtime_error {
 public:
  enum AsyncSocketExceptionType {
    UNKNOWN = 0,
    NOT_OPEN = 1,
    ALREADY_OPEN = 2,
    TIMED_OUT = 3,
    END_OF_FILE = 4,
    INTERRUPTED = 5,
    BAD_ARGS = 6,
    CORRUPTED_DATA = 7,
    INTERNAL_ERROR = 8,
    NOT_SUPPORTED = 9,
    INVALID_STATE = 10,
    SSL_ERROR = 12,
    COULD_NOT_BIND = 13,
    SASL_HANDSHAKE_TIMEOUT = 14,
    NETWORK_ERROR = 15
  };
{code}
#  add unit tests to cover them.

> [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
>
>
> 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.3.15#6346)

Reply via email to