[jira] [Commented] (HBASE-18578) [C++] Add pause for RPC test

2017-08-11 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18578:
---

It runs into broken promise exception, e.g.
{noformat}
I0811 23:05:53.956799   402 rpc-client.cc:86] RpcClient Exception: 
N5folly13BrokenPromiseE: Broken promise for type name 
`St10unique_ptrIN5hbase8ResponseESt14default_deleteIS1_EE`
I0811 23:05:53.956811   402 rpc-test.cc:240] RPC pause returned: 
N5folly13BrokenPromiseE: Broken promise for type name 
`St10unique_ptrIN5hbase8ResponseESt14default_deleteIS1_EE`.
{noformat}

Steps to reproduce it:
# buck test --no-cache --no-results-cache //connection:rpc-test
# GLOG_v=3 ./buck-out/gen/connection/rpc-test

> [C++] Add pause for RPC test
> 
>
> Key: HBASE-18578
> URL: https://issues.apache.org/jira/browse/HBASE-18578
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
> Attachments: HBASE-18578.000.patch
>
>




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


[jira] [Commented] (HBASE-18578) [C++] Add pause for RPC test

2017-08-11 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18578:
---

posted v0 patch.

> [C++] Add pause for RPC test
> 
>
> Key: HBASE-18578
> URL: https://issues.apache.org/jira/browse/HBASE-18578
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
> Attachments: HBASE-18578.000.patch
>
>




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


[jira] [Updated] (HBASE-18578) [C++] Add pause for RPC test

2017-08-11 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18578?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18578:
--
Attachment: HBASE-18578.000.patch

> [C++] Add pause for RPC test
> 
>
> Key: HBASE-18578
> URL: https://issues.apache.org/jira/browse/HBASE-18578
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
> Attachments: HBASE-18578.000.patch
>
>




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


[jira] [Updated] (HBASE-18576) [C++] Add ping for RPC test

2017-08-11 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18576?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18576:
--
Attachment: HBASE-18576.000.patch

> [C++] Add ping for RPC test
> ---
>
> Key: HBASE-18576
> URL: https://issues.apache.org/jira/browse/HBASE-18576
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18576.000.patch
>
>




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


[jira] [Created] (HBASE-18578) [C++] Add pause for RPC test

2017-08-11 Thread Xiaobing Zhou (JIRA)
Xiaobing Zhou created HBASE-18578:
-

 Summary: [C++] Add pause for RPC test
 Key: HBASE-18578
 URL: https://issues.apache.org/jira/browse/HBASE-18578
 Project: HBase
  Issue Type: Sub-task
Reporter: Xiaobing Zhou






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


[jira] [Commented] (HBASE-18576) [C++] Add ping for RPC test

2017-08-11 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18576:
---

posted v0 for reviews.

> [C++] Add ping for RPC test
> ---
>
> Key: HBASE-18576
> URL: https://issues.apache.org/jira/browse/HBASE-18576
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18576.000.patch
>
>




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


[jira] [Updated] (HBASE-18576) [C++] Add ping for RPC test

2017-08-11 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18576?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18576:
--
Status: Patch Available  (was: Open)

> [C++] Add ping for RPC test
> ---
>
> Key: HBASE-18576
> URL: https://issues.apache.org/jira/browse/HBASE-18576
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18576.000.patch
>
>




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


[jira] [Created] (HBASE-18576) [C++] Add ping for RPC test

2017-08-11 Thread Xiaobing Zhou (JIRA)
Xiaobing Zhou created HBASE-18576:
-

 Summary: [C++] Add ping for RPC test
 Key: HBASE-18576
 URL: https://issues.apache.org/jira/browse/HBASE-18576
 Project: HBase
  Issue Type: Sub-task
Reporter: Xiaobing Zhou
Assignee: Xiaobing Zhou






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


[jira] [Updated] (HBASE-18574) [C++] flakey test failure of TestFailWithException and FailWithExceptionFromRegionLocationLookupSplitRegions

2017-08-11 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18574?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18574:
--
Description: 
It's been noticed TestFailWithException (i.e. in async-rpc-retrying-test.cc) 
and/or FailWithExceptionFromRegionLocationLookupSplitRegions(i.e.  in 
async-batch-rpc-retrying-test.cc) fails occasionally if run in a batch or 
individually, e.g.
{noformat}
buck test --no-cache --no-results-cache --all
{noformat}

{noformat}
buck test --no-cache --no-results-cache //core:retry-test
{noformat}

{noformat}
buck test --no-cache --no-results-cache //core:multi-retry-test
{noformat}

  was:
It's been noticed TestFailWithException (i.e. in async-rpc-retrying-test.cc) 
and/or FailWithExceptionFromRegionLocationLookupSplitRegions(i.e.  in 
async-batch-rpc-retrying-test.cc) fails occasionally if run in a batch or 
individually, e.g.
{noformat}
buck test --no-cache --no-results-cache --all
{noformat}

{noformat}
buck test --no-cache --no-results-cache //core:retry-test
{noformat}



> [C++] flakey test failure of TestFailWithException and 
> FailWithExceptionFromRegionLocationLookupSplitRegions
> 
>
> Key: HBASE-18574
> URL: https://issues.apache.org/jira/browse/HBASE-18574
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>
> It's been noticed TestFailWithException (i.e. in async-rpc-retrying-test.cc) 
> and/or FailWithExceptionFromRegionLocationLookupSplitRegions(i.e.  in 
> async-batch-rpc-retrying-test.cc) fails occasionally if run in a batch or 
> individually, e.g.
> {noformat}
> buck test --no-cache --no-results-cache --all
> {noformat}
> {noformat}
> buck test --no-cache --no-results-cache //core:retry-test
> {noformat}
> {noformat}
> buck test --no-cache --no-results-cache //core:multi-retry-test
> {noformat}



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


[jira] [Updated] (HBASE-18574) [C++] flakey test failure of TestFailWithException and FailWithExceptionFromRegionLocationLookupSplitRegions

2017-08-11 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18574?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18574:
--
Description: 
It's been noticed TestFailWithException (in async-rpc-retrying-test.cc) and/or  
fails occasionally if run in a batch or individually, e.g.
{noformat}
buck test --no-cache --no-results-cache --all
{noformat}

{noformat}
buck test --no-cache --no-results-cache //core:retry-test
{noformat}


  was:
It's been noticed TestFailWithException (in async-rpc-retrying-test.cc) fails 
occasionally if run in a batch or individually, e.g.
{noformat}
buck test --no-cache --no-results-cache --all
{noformat}

{noformat}
buck test --no-cache --no-results-cache //core:retry-test
{noformat}



> [C++] flakey test failure of TestFailWithException and 
> FailWithExceptionFromRegionLocationLookupSplitRegions
> 
>
> Key: HBASE-18574
> URL: https://issues.apache.org/jira/browse/HBASE-18574
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>
> It's been noticed TestFailWithException (in async-rpc-retrying-test.cc) 
> and/or  fails occasionally if run in a batch or individually, e.g.
> {noformat}
> buck test --no-cache --no-results-cache --all
> {noformat}
> {noformat}
> buck test --no-cache --no-results-cache //core:retry-test
> {noformat}



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


[jira] [Updated] (HBASE-18574) [C++] flakey test failure of TestFailWithException and FailWithExceptionFromRegionLocationLookupSplitRegions

2017-08-11 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18574?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18574:
--
Description: 
It's been noticed TestFailWithException (i.e. in async-rpc-retrying-test.cc) 
and/or FailWithExceptionFromRegionLocationLookupSplitRegions(i.e.  in 
async-batch-rpc-retrying-test.cc) fails occasionally if run in a batch or 
individually, e.g.
{noformat}
buck test --no-cache --no-results-cache --all
{noformat}

{noformat}
buck test --no-cache --no-results-cache //core:retry-test
{noformat}


  was:
It's been noticed TestFailWithException (in async-rpc-retrying-test.cc) and/or  
fails occasionally if run in a batch or individually, e.g.
{noformat}
buck test --no-cache --no-results-cache --all
{noformat}

{noformat}
buck test --no-cache --no-results-cache //core:retry-test
{noformat}



> [C++] flakey test failure of TestFailWithException and 
> FailWithExceptionFromRegionLocationLookupSplitRegions
> 
>
> Key: HBASE-18574
> URL: https://issues.apache.org/jira/browse/HBASE-18574
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>
> It's been noticed TestFailWithException (i.e. in async-rpc-retrying-test.cc) 
> and/or FailWithExceptionFromRegionLocationLookupSplitRegions(i.e.  in 
> async-batch-rpc-retrying-test.cc) fails occasionally if run in a batch or 
> individually, e.g.
> {noformat}
> buck test --no-cache --no-results-cache --all
> {noformat}
> {noformat}
> buck test --no-cache --no-results-cache //core:retry-test
> {noformat}



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


[jira] [Updated] (HBASE-18574) [C++] flakey test failure of TestFailWithException and FailWithExceptionFromRegionLocationLookupSplitRegions

2017-08-11 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18574?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18574:
--
Summary: [C++] flakey test failure of TestFailWithException and 
FailWithExceptionFromRegionLocationLookupSplitRegions  (was: [C++] flakey test 
failure of AsyncRpcRetryTest::TestFailWithException )

> [C++] flakey test failure of TestFailWithException and 
> FailWithExceptionFromRegionLocationLookupSplitRegions
> 
>
> Key: HBASE-18574
> URL: https://issues.apache.org/jira/browse/HBASE-18574
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>
> It's been noticed TestFailWithException (in async-rpc-retrying-test.cc) fails 
> occasionally if run in a batch or individually, e.g.
> {noformat}
> buck test --no-cache --no-results-cache --all
> {noformat}
> {noformat}
> buck test --no-cache --no-results-cache //core:retry-test
> {noformat}



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


[jira] [Updated] (HBASE-18574) [C++] flakey test failure of AsyncRpcRetryTest::TestFailWithException

2017-08-11 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18574?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18574:
--
Description: 
It's been noticed TestFailWithException (in async-rpc-retrying-test.cc) fails 
occasionally if run in a batch or individually, e.g.
{noformat}
buck test --no-cache --no-results-cache --all
{noformat}

{noformat}
buck test --no-cache --no-results-cache //core:retry-test
{noformat}


  was:It's been noticed TestFailWithException (in async-rpc-retrying-test.cc) 
fails occasionally.


> [C++] flakey test failure of AsyncRpcRetryTest::TestFailWithException 
> --
>
> Key: HBASE-18574
> URL: https://issues.apache.org/jira/browse/HBASE-18574
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>
> It's been noticed TestFailWithException (in async-rpc-retrying-test.cc) fails 
> occasionally if run in a batch or individually, e.g.
> {noformat}
> buck test --no-cache --no-results-cache --all
> {noformat}
> {noformat}
> buck test --no-cache --no-results-cache //core:retry-test
> {noformat}



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


[jira] [Updated] (HBASE-18574) [C++] flakey test failure of AsyncRpcRetryTest::TestFailWithException

2017-08-11 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18574?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18574:
--
Description: It's been noticed TestFailWithException (in 
async-rpc-retrying-test.cc) fails occasionally.

> [C++] flakey test failure of AsyncRpcRetryTest::TestFailWithException 
> --
>
> Key: HBASE-18574
> URL: https://issues.apache.org/jira/browse/HBASE-18574
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>
> It's been noticed TestFailWithException (in async-rpc-retrying-test.cc) fails 
> occasionally.



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


[jira] [Created] (HBASE-18574) [C++] flakey test failure of AsyncRpcRetryTest::TestFailWithException

2017-08-11 Thread Xiaobing Zhou (JIRA)
Xiaobing Zhou created HBASE-18574:
-

 Summary: [C++] flakey test failure of 
AsyncRpcRetryTest::TestFailWithException 
 Key: HBASE-18574
 URL: https://issues.apache.org/jira/browse/HBASE-18574
 Project: HBase
  Issue Type: Sub-task
Reporter: Xiaobing Zhou






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


[jira] [Updated] (HBASE-18534) [C++] Support timeout in Rpc

2017-08-09 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18534?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18534:
--
Attachment: HBASE-18534.001.patch

v1:
# did some refactoring.
# fix some compile issues.

> [C++] Support timeout in Rpc
> 
>
> Key: HBASE-18534
> URL: https://issues.apache.org/jira/browse/HBASE-18534
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18534.000.patch, HBASE-18534.001.patch
>
>




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


[jira] [Comment Edited] (HBASE-18534) [C++] Support timeout in Rpc

2017-08-09 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou edited comment on HBASE-18534 at 8/9/17 10:35 PM:


Posted v0:
# added per request read RPC timeout

Need to also handle write RPC timeout for next.


was (Author: xiaobingo):
Posted v0:
# added per request timeout

> [C++] Support timeout in Rpc
> 
>
> Key: HBASE-18534
> URL: https://issues.apache.org/jira/browse/HBASE-18534
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18534.000.patch
>
>




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


[jira] [Commented] (HBASE-18534) [C++] Support timeout in Rpc

2017-08-09 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18534:
---

Posted v0:
# added per request timeout

> [C++] Support timeout in Rpc
> 
>
> Key: HBASE-18534
> URL: https://issues.apache.org/jira/browse/HBASE-18534
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18534.000.patch
>
>




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


[jira] [Updated] (HBASE-18534) [C++] Support timeout in Rpc

2017-08-09 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18534?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18534:
--
Attachment: HBASE-18534.000.patch

> [C++] Support timeout in Rpc
> 
>
> Key: HBASE-18534
> URL: https://issues.apache.org/jira/browse/HBASE-18534
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18534.000.patch
>
>




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


[jira] [Updated] (HBASE-18536) [C++] Add RPC fault injection infra

2017-08-07 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18536?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18536:
--
Status: Patch Available  (was: Open)

> [C++] Add RPC fault injection infra
> ---
>
> Key: HBASE-18536
> URL: https://issues.apache.org/jira/browse/HBASE-18536
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18536.000.patch
>
>




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


[jira] [Updated] (HBASE-18536) [C++] Add RPC fault injection infra

2017-08-07 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18536?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18536:
--
Attachment: HBASE-18536.000.patch

> [C++] Add RPC fault injection infra
> ---
>
> Key: HBASE-18536
> URL: https://issues.apache.org/jira/browse/HBASE-18536
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18536.000.patch
>
>




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


[jira] [Updated] (HBASE-18536) [C++] Add RPC fault injection infra

2017-08-07 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18536?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18536:
--
Summary: [C++] Add RPC fault injection infra  (was: [C++] Add fault 
injection infra)

> [C++] Add RPC fault injection infra
> ---
>
> Key: HBASE-18536
> URL: https://issues.apache.org/jira/browse/HBASE-18536
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
>




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


[jira] [Updated] (HBASE-18078) [C++] Harden RPC by handling various communication abnormalities

2017-08-07 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18078?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18078:
--
Attachment: HBASE-18078.008.patch

> [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, 
> HBASE-18078.008.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)


[jira] [Updated] (HBASE-18078) [C++] Harden RPC by handling various communication abnormalities

2017-08-07 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18078?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18078:
--
Attachment: (was: HBASE-18078.008.patch)

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


[jira] [Updated] (HBASE-18536) [C++] Add fault injection infra

2017-08-07 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18536?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18536:
--
Summary: [C++] Add fault injection infra  (was: [C++] )

> [C++] Add fault injection infra
> ---
>
> Key: HBASE-18536
> URL: https://issues.apache.org/jira/browse/HBASE-18536
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>




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


[jira] [Assigned] (HBASE-18536) [C++] Add fault injection infra

2017-08-07 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18536?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou reassigned HBASE-18536:
-

Assignee: Xiaobing Zhou

> [C++] Add fault injection infra
> ---
>
> Key: HBASE-18536
> URL: https://issues.apache.org/jira/browse/HBASE-18536
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
>




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


[jira] [Created] (HBASE-18536) [C++]

2017-08-07 Thread Xiaobing Zhou (JIRA)
Xiaobing Zhou created HBASE-18536:
-

 Summary: [C++] 
 Key: HBASE-18536
 URL: https://issues.apache.org/jira/browse/HBASE-18536
 Project: HBase
  Issue Type: Sub-task
Reporter: Xiaobing Zhou






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


[jira] [Updated] (HBASE-18535) [C++] make RPC test mode transparent to initialization of RpcPipeline

2017-08-07 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18535?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18535:
--
Description: 
This is a follow up work of HBASE-18338.
In RpcPipelineFactory::newPipeline, the HBASE_CLIENT_RPC_TEST_MODE is used to 
exclude SaslHandler which otherwise will cause RpcTestServer not receiving any 
requests.

{code}
+  if (!conf_->GetBool(
+  Configuration::HBASE_CLIENT_RPC_TEST_MODE,
+  Configuration::DEFAULT_HBASE_CLIENT_RPC_TEST_MODE)) {
+secure = security::User::IsSecurityEnabled(*conf_);
+pipeline->addBack(SaslHandler{user_util_.user_name(secure), conf_});
+  }
{code}

This is not clean. Handlers should be added to pipeline regardless of test or 
not, instead, every handler can choose to discriminate test or not. Taking 
ClientHandler as an example:
{code}
folly::Future ClientHandler::write(Context *ctx, 
std::unique_ptr r) {
  /* for RPC test, there's no need to send connection header */
  if (!conf_->GetBool(RpcSerde::HBASE_CLIENT_RPC_TEST_MODE,
  RpcSerde::DEFAULT_HBASE_CLIENT_RPC_TEST_MODE)) {
// We need to send the header once.
// So use call_once to make sure that only one thread wins this.
std::call_once((*once_flag_), [ctx, this]() {
  VLOG(3) << "Writing RPC Header to server: " << server_;
  auto header = serde_.Header(user_name_);
  ctx->fireWrite(std::move(header));
});
  }
{code}

> [C++] make RPC test mode transparent to initialization of RpcPipeline
> -
>
> Key: HBASE-18535
> URL: https://issues.apache.org/jira/browse/HBASE-18535
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>
> This is a follow up work of HBASE-18338.
> In RpcPipelineFactory::newPipeline, the HBASE_CLIENT_RPC_TEST_MODE is used to 
> exclude SaslHandler which otherwise will cause RpcTestServer not receiving 
> any requests.
> {code}
> +  if (!conf_->GetBool(
> +  Configuration::HBASE_CLIENT_RPC_TEST_MODE,
> +  Configuration::DEFAULT_HBASE_CLIENT_RPC_TEST_MODE)) {
> +secure = security::User::IsSecurityEnabled(*conf_);
> +pipeline->addBack(SaslHandler{user_util_.user_name(secure), conf_});
> +  }
> {code}
> This is not clean. Handlers should be added to pipeline regardless of test or 
> not, instead, every handler can choose to discriminate test or not. Taking 
> ClientHandler as an example:
> {code}
> folly::Future ClientHandler::write(Context *ctx, 
> std::unique_ptr r) {
>   /* for RPC test, there's no need to send connection header */
>   if (!conf_->GetBool(RpcSerde::HBASE_CLIENT_RPC_TEST_MODE,
>   RpcSerde::DEFAULT_HBASE_CLIENT_RPC_TEST_MODE)) {
> // We need to send the header once.
> // So use call_once to make sure that only one thread wins this.
> std::call_once((*once_flag_), [ctx, this]() {
>   VLOG(3) << "Writing RPC Header to server: " << server_;
>   auto header = serde_.Header(user_name_);
>   ctx->fireWrite(std::move(header));
> });
>   }
> {code}



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


[jira] [Created] (HBASE-18535) [C++] make RPC test mode transparent to initialization of RpcPipeline

2017-08-07 Thread Xiaobing Zhou (JIRA)
Xiaobing Zhou created HBASE-18535:
-

 Summary: [C++] make RPC test mode transparent to initialization of 
RpcPipeline
 Key: HBASE-18535
 URL: https://issues.apache.org/jira/browse/HBASE-18535
 Project: HBase
  Issue Type: Sub-task
Reporter: Xiaobing Zhou






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


[jira] [Created] (HBASE-18534) [C++] Support timeout in Rpc

2017-08-07 Thread Xiaobing Zhou (JIRA)
Xiaobing Zhou created HBASE-18534:
-

 Summary: [C++] Support timeout in Rpc
 Key: HBASE-18534
 URL: https://issues.apache.org/jira/browse/HBASE-18534
 Project: HBase
  Issue Type: Sub-task
Reporter: Xiaobing Zhou
Assignee: Xiaobing Zhou






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


[jira] [Updated] (HBASE-18078) [C++] Harden RPC by handling various communication abnormalities

2017-08-07 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18078?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18078:
--
Attachment: (was: HBASE-18078.009.patch)

> [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, 
> HBASE-18078.008.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)


[jira] [Commented] (HBASE-18078) [C++] Harden RPC by handling various communication abnormalities

2017-08-07 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18078:
---

Since the behavior of closing socket before sending request and after getting 
connection is beyond expectation (i.e.Broken promise for type 
unique_ptr), I've decided to move this case to separate ticket.

v8 is the work to be committed, v9 is dropped.

> [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, 
> HBASE-18078.008.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)


[jira] [Updated] (HBASE-18078) [C++] Harden RPC by handling various communication abnormalities

2017-08-04 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18078?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18078:
--
Status: Open  (was: Patch Available)

> [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, 
> HBASE-18078.008.patch, HBASE-18078.009.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)


[jira] [Commented] (HBASE-18078) [C++] Harden RPC by handling various communication abnormalities

2017-08-04 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18078:
---

Posted v9:
# added fault injection infra, see also RpcFaultInjector and 
RpcClientFaultInjector
# inject fault to close pipeline in ClientDispatcher::operator() to simulate 
the scenario to get AsyncSocketException after creating connection and before 
sending request
# added unit test

AsyncSocketException is expected, however, Broken promise for type 
unique_ptr is returned, will debug into this.

> [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, 
> HBASE-18078.008.patch, HBASE-18078.009.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)


[jira] [Updated] (HBASE-18078) [C++] Harden RPC by handling various communication abnormalities

2017-08-04 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18078?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18078:
--
Attachment: HBASE-18078.009.patch

> [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, 
> HBASE-18078.008.patch, HBASE-18078.009.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)


[jira] [Updated] (HBASE-18078) [C++] Harden RPC by handling various communication abnormalities

2017-08-04 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18078?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18078:
--
Attachment: HBASE-18078.008.patch

> [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, 
> HBASE-18078.008.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)


[jira] [Commented] (HBASE-18078) [C++] Harden RPC by handling various communication abnormalities

2017-08-04 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18078:
---

Thanks for review. v8 is posted.

# removed ConnectionRetryPolicy comment
# used VLOG(3) for RpcClient Exception

In addition:
# added socketNotOpen function in test_rpc_service.proto
# added unit tests for socketNotOpen

In RpcClient::SendRequest, we need to handle two cases for ConnectionException:
 # The first time connection establishment, i.e. GetConnection(remote_id), 
AsyncSocketException being a cause.
# Writing request down the pipeline, i.e. RpcConnection::SendRequest, 
AsyncSocketException being a cause as well.

The socketNotOpen covers the case of GetConnection(remote_id). Another test is 
needed to cover RpcConnection::SendRequest.

> [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, 
> HBASE-18078.008.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)


[jira] [Updated] (HBASE-18078) [C++] Harden RPC by handling various communication abnormalities

2017-08-03 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18078?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18078:
--
Status: Patch Available  (was: Open)

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


[jira] [Commented] (HBASE-18078) [C++] Harden RPC by handling various communication abnormalities

2017-08-03 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18078:
---

v7:
# added RpcClient::GetFutureWithException 
#  fixe broken tests due to v6

Extra tests come with next patch.

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


[jira] [Updated] (HBASE-18078) [C++] Harden RPC by handling various communication abnormalities

2017-08-03 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18078?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18078:
--
Attachment: HBASE-18078.007.patch

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


[jira] [Commented] (HBASE-18078) [C++] Harden RPC by handling various communication abnormalities

2017-08-02 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18078:
---

Posted v6:
# Catch AsyncSocketException in ConnectionFactory::Connect, and throw it as 
ConnectionException, which will be propagated up to 
ConnectionPool::GetConnection and RpcClient::SendRequest, finally caller of 
RpcClient will get ConnectionException.
# While writing data down the pipeline, RpcConnection::SendRequest will also 
encounter AsyncSocketException, similarly, it's propagated to caller of 
RpcClient.

The patch considered two cases:
# AsyncSocketException as a result of the 1st time connection establishment.
# ConnectionException (i.e. AsyncSocketException as a cause) for 
Request/Response async call after the corresponding connection is established.


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


[jira] [Updated] (HBASE-18078) [C++] Harden RPC by handling various communication abnormalities

2017-08-02 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18078?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18078:
--
Attachment: HBASE-18078.006.patch

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


[jira] [Commented] (HBASE-18459) [C++] Fix Segfault in location-cache

2017-07-31 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18459:
---

I had a run of location cache test based on the patch, it looks good to me. Thx.

> [C++] Fix Segfault in location-cache
> 
>
> Key: HBASE-18459
> URL: https://issues.apache.org/jira/browse/HBASE-18459
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Enis Soztutar
>Assignee: Enis Soztutar
> Fix For: HBASE-14850
>
> Attachments: hbase-18459-v1.patch
>
>
> When testing with the new multi-threaded load-client (implemented in 
> HBASE-18086), I've noticed that sometimes we get a segfault when zookeeper or 
> master connection gets an exception. 
> It seems to be from the way the we invalidate meta and refresh the meta. 



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


[jira] [Updated] (HBASE-18466) [C++] Support handling exception in RpcTestServer

2017-07-31 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18466?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18466:
--
Attachment: HBASE-18466.003.patch

> [C++] Support handling exception in RpcTestServer
> -
>
> Key: HBASE-18466
> URL: https://issues.apache.org/jira/browse/HBASE-18466
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18466.000.patch, HBASE-18466.001.patch, 
> HBASE-18466.002.patch, HBASE-18466.003.patch
>
>
> In order simulate various error from servers,  exceptions should be handled 
> properly. The idea is to zip exception into hbase::Response in 
> RpcTestService, and Serialize response to folly::IOBuf and write it down the 
> pipeline.



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


[jira] [Commented] (HBASE-18466) [C++] Support handling exception in RpcTestServer

2017-07-31 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18466:
---

Had a run of formatting code in v3.

> [C++] Support handling exception in RpcTestServer
> -
>
> Key: HBASE-18466
> URL: https://issues.apache.org/jira/browse/HBASE-18466
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18466.000.patch, HBASE-18466.001.patch, 
> HBASE-18466.002.patch
>
>
> In order simulate various error from servers,  exceptions should be handled 
> properly. The idea is to zip exception into hbase::Response in 
> RpcTestService, and Serialize response to folly::IOBuf and write it down the 
> pipeline.



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


[jira] [Commented] (HBASE-18466) [C++] Support handling exception in RpcTestServer

2017-07-31 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18466:
---

posted v2:
# removed DoNotRetryException added RpcTestException

Thanks for review.

> [C++] Support handling exception in RpcTestServer
> -
>
> Key: HBASE-18466
> URL: https://issues.apache.org/jira/browse/HBASE-18466
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18466.000.patch, HBASE-18466.001.patch, 
> HBASE-18466.002.patch
>
>
> In order simulate various error from servers,  exceptions should be handled 
> properly. The idea is to zip exception into hbase::Response in 
> RpcTestService, and Serialize response to folly::IOBuf and write it down the 
> pipeline.



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


[jira] [Updated] (HBASE-18466) [C++] Support handling exception in RpcTestServer

2017-07-31 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18466?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18466:
--
Attachment: HBASE-18466.002.patch

> [C++] Support handling exception in RpcTestServer
> -
>
> Key: HBASE-18466
> URL: https://issues.apache.org/jira/browse/HBASE-18466
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18466.000.patch, HBASE-18466.001.patch, 
> HBASE-18466.002.patch
>
>
> In order simulate various error from servers,  exceptions should be handled 
> properly. The idea is to zip exception into hbase::Response in 
> RpcTestService, and Serialize response to folly::IOBuf and write it down the 
> pipeline.



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


[jira] [Updated] (HBASE-18466) [C++] Support handling exception in RpcTestServer

2017-07-28 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18466?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18466:
--
Status: Patch Available  (was: Open)

> [C++] Support handling exception in RpcTestServer
> -
>
> Key: HBASE-18466
> URL: https://issues.apache.org/jira/browse/HBASE-18466
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18466.000.patch, HBASE-18466.001.patch
>
>
> In order simulate various error from servers,  exceptions should be handled 
> properly. The idea is to zip exception into hbase::Response in 
> RpcTestService, and Serialize response to folly::IOBuf and write it down the 
> pipeline.



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


[jira] [Commented] (HBASE-18466) [C++] Support handling exception in RpcTestServer

2017-07-28 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18466:
---

Posted v1:
# fixed promise broken issue when 
ResponseHeader::set_allocated_exception(pb::ExceptionResponse) is called 
without new style allocation of pb::ExceptionResponse.

> [C++] Support handling exception in RpcTestServer
> -
>
> Key: HBASE-18466
> URL: https://issues.apache.org/jira/browse/HBASE-18466
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18466.000.patch, HBASE-18466.001.patch
>
>
> In order simulate various error from servers,  exceptions should be handled 
> properly. The idea is to zip exception into hbase::Response in 
> RpcTestService, and Serialize response to folly::IOBuf and write it down the 
> pipeline.



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


[jira] [Updated] (HBASE-18466) [C++] Support handling exception in RpcTestServer

2017-07-28 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18466?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18466:
--
Attachment: HBASE-18466.001.patch

> [C++] Support handling exception in RpcTestServer
> -
>
> Key: HBASE-18466
> URL: https://issues.apache.org/jira/browse/HBASE-18466
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18466.000.patch, HBASE-18466.001.patch
>
>
> In order simulate various error from servers,  exceptions should be handled 
> properly. The idea is to zip exception into hbase::Response in 
> RpcTestService, and Serialize response to folly::IOBuf and write it down the 
> pipeline.



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


[jira] [Comment Edited] (HBASE-18466) [C++] Support handling exception in RpcTestServer

2017-07-27 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou edited comment on HBASE-18466 at 7/28/17 12:33 AM:
-

Posted v0:
# changed  RpcTestService and RpcTestServerSerializeHandler for the purpose
# implemented error in test_rpc_service.proto
# added unit test for it


was (Author: xiaobingo):
Posted v0:
# changed  RpcTestService and RpcTestServerSerializeHandler for the purpose
# implemented error in test_rpc_service.proto

> [C++] Support handling exception in RpcTestServer
> -
>
> Key: HBASE-18466
> URL: https://issues.apache.org/jira/browse/HBASE-18466
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18466.000.patch
>
>
> In order simulate various error from servers,  exceptions should be handled 
> properly. The idea is to zip exception into hbase::Response in 
> RpcTestService, and Serialize response to folly::IOBuf and write it down the 
> pipeline.



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


[jira] [Commented] (HBASE-18466) [C++] Support handling exception in RpcTestServer

2017-07-27 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18466:
---

Posted v0:
# changed  RpcTestService and RpcTestServerSerializeHandler for the purpose
# implemented error in test_rpc_service.proto

> [C++] Support handling exception in RpcTestServer
> -
>
> Key: HBASE-18466
> URL: https://issues.apache.org/jira/browse/HBASE-18466
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18466.000.patch
>
>
> In order simulate various error from servers,  exceptions should be handled 
> properly. The idea is to zip exception into hbase::Response in 
> RpcTestService, and Serialize response to folly::IOBuf and write it down the 
> pipeline.



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


[jira] [Updated] (HBASE-18466) [C++] Support handling exception in RpcTestServer

2017-07-27 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18466?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18466:
--
Attachment: HBASE-18466.000.patch

> [C++] Support handling exception in RpcTestServer
> -
>
> Key: HBASE-18466
> URL: https://issues.apache.org/jira/browse/HBASE-18466
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18466.000.patch
>
>
> In order simulate various error from servers,  exceptions should be handled 
> properly. The idea is to zip exception into hbase::Response in 
> RpcTestService, and Serialize response to folly::IOBuf and write it down the 
> pipeline.



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


[jira] [Created] (HBASE-18466) [C++] Support handling exception in RpcTestServer

2017-07-27 Thread Xiaobing Zhou (JIRA)
Xiaobing Zhou created HBASE-18466:
-

 Summary: [C++] Support handling exception in RpcTestServer
 Key: HBASE-18466
 URL: https://issues.apache.org/jira/browse/HBASE-18466
 Project: HBase
  Issue Type: Sub-task
Reporter: Xiaobing Zhou
Assignee: Xiaobing Zhou


In order simulate various error from servers,  exceptions should be handled 
properly. The idea is to zip exception into hbase::Response in RpcTestService, 
and Serialize response to folly::IOBuf and write it down the pipeline.



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


[jira] [Commented] (HBASE-18078) [C++] Harden RPC by handling various communication abnormalities

2017-07-26 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18078:
---

Posted v5:
# added two functions (i.e. ping and addr) implementation in 
test_rpc_service.proto
# rebased HBASE-18338
# did some refactoring

v6 will come with error implementation that triggers ConnectionException.

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


[jira] [Updated] (HBASE-18078) [C++] Harden RPC by handling various communication abnormalities

2017-07-26 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18078?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18078:
--
Attachment: HBASE-18078.005.patch

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


[jira] [Commented] (HBASE-18338) [C++] Implement RpcTestServer

2017-07-26 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18338:
---

Nice to have this, thanks [~enis].

> [C++] Implement RpcTestServer
> -
>
> Key: HBASE-18338
> URL: https://issues.apache.org/jira/browse/HBASE-18338
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Fix For: HBASE-14850
>
> Attachments: HBASE-18338.000.patch, HBASE-18338.001.patch, 
> HBASE-18338.002.patch, HBASE-18338.003.patch, HBASE-18338.004.patch, 
> HBASE-18338.005.patch, HBASE-18338.006.patch, hbase-18338-addendum.patch
>
>
> This is a spin-off from HBASE-18078. We need RpcTestServer to simulate 
> various communication scenarios, e.g. timeout, connection aborted, long 
> running services and so on.



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


[jira] [Commented] (HBASE-18371) [C++] Update folly and wangle dependencies

2017-07-24 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18371:
---

Had one more run, it works by removing buck-out.
+1 non-binding

> [C++] Update folly and wangle dependencies
> --
>
> Key: HBASE-18371
> URL: https://issues.apache.org/jira/browse/HBASE-18371
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Enis Soztutar
>Assignee: Enis Soztutar
> Fix For: HBASE-14850
>
> Attachments: hbase-18371_v1.patch, hbase-18371_v2.patch, 
> hbase-18371_v3.patch
>
>
> We need to update folly and wangle dependency versions. Debugging an issue, I 
> realized that we may need a couple of recent patches from wangle. 



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


[jira] [Comment Edited] (HBASE-18204) [C++] Rpc connection close and reconnecting

2017-07-21 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou edited comment on HBASE-18204 at 7/21/17 10:18 PM:
-

Here are some points:
# Not all exceptions from reading mean 'Connection closed to server', outgoing 
RPCs shouldn't be treated as same by being cleaned as a result. Should we 
respond based on different underlying errors?
# It actually introduces some bi-directional dependencies, e.g. RpcConnection 
and ConnectionPool, RpcConnection and ClientDispatcher, which make code less 
modular.
# RpcConnection::SendRequest is not thread safe, e.g. when it comes to connect


was (Author: xiaobingo):
Here are some points:
# Not all exceptions from reading mean 'Connection closed to server', outgoing 
RPCs shouldn't be treated as same by being cleaned as a result. Should we 
respond based on different underlying errors?
# It actually introduces some bi-directional dependencies, e.g. RpcConnection 
and ConnectionPool, RpcConnection and ClientDispatcher
# RpcConnection::SendRequest is not thread safe, e.g. when it comes to connect

> [C++] Rpc connection close and reconnecting
> ---
>
> Key: HBASE-18204
> URL: https://issues.apache.org/jira/browse/HBASE-18204
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Enis Soztutar
>Assignee: Enis Soztutar
> Attachments: hbase-18204_v1.patch, hbase-18204_v2.patch
>
>
> Our client-dispatcher maintains a map of outgoing RPCs per server with the 
> promises. 
> In case the server goes down, or TCP connection is closed, we should complete 
> the outgoing RPCs with exceptions so that higher level waiters can unblock 
> and retry. 



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


[jira] [Commented] (HBASE-18204) [C++] Rpc connection close and reconnecting

2017-07-21 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18204:
---

Here are some points:
# Not all exceptions from reading mean 'Connection closed to server', outgoing 
RPCs shouldn't be treated as same by being cleaned as a result. Should we 
respond based on different underlying errors?
# It actually introduces some bi-directional dependencies, e.g. RpcConnection 
and ConnectionPool, RpcConnection and ClientDispatcher
# RpcConnection::SendRequest is not thread safe, e.g. when it comes to connect

> [C++] Rpc connection close and reconnecting
> ---
>
> Key: HBASE-18204
> URL: https://issues.apache.org/jira/browse/HBASE-18204
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Enis Soztutar
>Assignee: Enis Soztutar
> Attachments: hbase-18204_v1.patch, hbase-18204_v2.patch
>
>
> Our client-dispatcher maintains a map of outgoing RPCs per server with the 
> promises. 
> In case the server goes down, or TCP connection is closed, we should complete 
> the outgoing RPCs with exceptions so that higher level waiters can unblock 
> and retry. 



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


[jira] [Commented] (HBASE-18371) [C++] Update folly and wangle dependencies

2017-07-20 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18371:
---

v3 LGTM, had a run of dock build, but there are many compile issues when the 
following is tried:
{noformat}
 buck test --no-cache --no-results-cache //core:retry-test
{noformat}

Could you double check it? Thanks.

> [C++] Update folly and wangle dependencies
> --
>
> Key: HBASE-18371
> URL: https://issues.apache.org/jira/browse/HBASE-18371
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Enis Soztutar
>Assignee: Enis Soztutar
> Fix For: HBASE-14850
>
> Attachments: hbase-18371_v1.patch, hbase-18371_v2.patch, 
> hbase-18371_v3.patch
>
>
> We need to update folly and wangle dependency versions. Debugging an issue, I 
> realized that we may need a couple of recent patches from wangle. 



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


[jira] [Commented] (HBASE-18078) [C++] Harden RPC by handling various communication abnormalities

2017-07-20 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18078:
---

Posted v4:
# removed RPC test related pieces.
# did some clean work.

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


[jira] [Updated] (HBASE-18078) [C++] Harden RPC by handling various communication abnormalities

2017-07-20 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18078?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18078:
--
Attachment: HBASE-18078.004.patch

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


[jira] [Commented] (HBASE-18371) [C++] Update folly and wangle dependencies

2017-07-20 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18371:
---

Thanks [~enis] for the work. The patch v2 fails to be applied due to conflict, 
could you please have a rebase?

> [C++] Update folly and wangle dependencies
> --
>
> Key: HBASE-18371
> URL: https://issues.apache.org/jira/browse/HBASE-18371
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Enis Soztutar
>Assignee: Enis Soztutar
> Fix For: HBASE-14850
>
> Attachments: hbase-18371_v1.patch, hbase-18371_v2.patch
>
>
> We need to update folly and wangle dependency versions. Debugging an issue, I 
> realized that we may need a couple of recent patches from wangle. 



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


[jira] [Commented] (HBASE-18338) [C++] Implement RpcTestServer

2017-07-20 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18338:
---

Posted v6:
# moved HBASE_CLIENT_RPC_TEST_MODE as suggested
# did some code formatting.

Simply passing IOBuf in and out in SaslHandler is tried, but RpcTestServer is 
not able to get any request. I'd debug this in follow up patch. Right now keep 
it as v5 is. Thanks for review [~enis]!

> [C++] Implement RpcTestServer
> -
>
> Key: HBASE-18338
> URL: https://issues.apache.org/jira/browse/HBASE-18338
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18338.000.patch, HBASE-18338.001.patch, 
> HBASE-18338.002.patch, HBASE-18338.003.patch, HBASE-18338.004.patch, 
> HBASE-18338.005.patch, HBASE-18338.006.patch
>
>
> This is a spin-off from HBASE-18078. We need RpcTestServer to simulate 
> various communication scenarios, e.g. timeout, connection aborted, long 
> running services and so on.



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


[jira] [Updated] (HBASE-18338) [C++] Implement RpcTestServer

2017-07-20 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18338?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18338:
--
Attachment: HBASE-18338.006.patch

> [C++] Implement RpcTestServer
> -
>
> Key: HBASE-18338
> URL: https://issues.apache.org/jira/browse/HBASE-18338
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18338.000.patch, HBASE-18338.001.patch, 
> HBASE-18338.002.patch, HBASE-18338.003.patch, HBASE-18338.004.patch, 
> HBASE-18338.005.patch, HBASE-18338.006.patch
>
>
> This is a spin-off from HBASE-18078. We need RpcTestServer to simulate 
> various communication scenarios, e.g. timeout, connection aborted, long 
> running services and so on.



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


[jira] [Updated] (HBASE-18338) [C++] Implement RpcTestServer

2017-07-20 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18338?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18338:
--
Attachment: (was: HBASE-18338.006.patch)

> [C++] Implement RpcTestServer
> -
>
> Key: HBASE-18338
> URL: https://issues.apache.org/jira/browse/HBASE-18338
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18338.000.patch, HBASE-18338.001.patch, 
> HBASE-18338.002.patch, HBASE-18338.003.patch, HBASE-18338.004.patch, 
> HBASE-18338.005.patch, HBASE-18338.006.patch
>
>
> This is a spin-off from HBASE-18078. We need RpcTestServer to simulate 
> various communication scenarios, e.g. timeout, connection aborted, long 
> running services and so on.



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


[jira] [Updated] (HBASE-18338) [C++] Implement RpcTestServer

2017-07-20 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18338?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18338:
--
Attachment: HBASE-18338.006.patch

> [C++] Implement RpcTestServer
> -
>
> Key: HBASE-18338
> URL: https://issues.apache.org/jira/browse/HBASE-18338
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18338.000.patch, HBASE-18338.001.patch, 
> HBASE-18338.002.patch, HBASE-18338.003.patch, HBASE-18338.004.patch, 
> HBASE-18338.005.patch, HBASE-18338.006.patch
>
>
> This is a spin-off from HBASE-18078. We need RpcTestServer to simulate 
> various communication scenarios, e.g. timeout, connection aborted, long 
> running services and so on.



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


[jira] [Commented] (HBASE-18407) [C++] make Configuration::Set/GetBool work for both true/false and 1/0

2017-07-19 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18407:
---

repost v0, following the patch naming convention to let it being applied to 
feature branch.

> [C++] make Configuration::Set/GetBool work for both true/false and 1/0
> --
>
> Key: HBASE-18407
> URL: https://issues.apache.org/jira/browse/HBASE-18407
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18407.000.patch, HBASE-18407-HBASE-14850.000.patch
>
>
> Configuration::SetBool internally converts true/false to 1/0 using 
> boost::lexical_cast(value), this results in runtime exception 
> with 'Unexpected value found while conversion to bool.' in 
> Configuration::GetBool since it only recognizes "true" or "false" as string 
> representation of true or false. 1/0 should be considered in the check in 
> GetBool.



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


[jira] [Updated] (HBASE-18407) [C++] make Configuration::Set/GetBool work for both true/false and 1/0

2017-07-19 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18407?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18407:
--
Attachment: HBASE-18407-HBASE-14850.000.patch

> [C++] make Configuration::Set/GetBool work for both true/false and 1/0
> --
>
> Key: HBASE-18407
> URL: https://issues.apache.org/jira/browse/HBASE-18407
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18407.000.patch, HBASE-18407-HBASE-14850.000.patch
>
>
> Configuration::SetBool internally converts true/false to 1/0 using 
> boost::lexical_cast(value), this results in runtime exception 
> with 'Unexpected value found while conversion to bool.' in 
> Configuration::GetBool since it only recognizes "true" or "false" as string 
> representation of true or false. 1/0 should be considered in the check in 
> GetBool.



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


[jira] [Commented] (HBASE-18407) [C++] make Configuration::Set/GetBool work for both true/false and 1/0

2017-07-19 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18407:
---

Posted v0:
# 1/0 is allowed in string/numeric representation of true/false.
# unit tests are added


> [C++] make Configuration::Set/GetBool work for both true/false and 1/0
> --
>
> Key: HBASE-18407
> URL: https://issues.apache.org/jira/browse/HBASE-18407
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18407.000.patch
>
>
> Configuration::SetBool internally converts true/false to 1/0 using 
> boost::lexical_cast(value), this results in runtime exception 
> with 'Unexpected value found while conversion to bool.' in 
> Configuration::GetBool since it only recognizes "true" or "false" as string 
> representation of true or false. 1/0 should be considered in the check in 
> GetBool.



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


[jira] [Updated] (HBASE-18407) [C++] make Configuration::Set/GetBool work for both true/false and 1/0

2017-07-19 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18407?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18407:
--
Status: Patch Available  (was: Open)

> [C++] make Configuration::Set/GetBool work for both true/false and 1/0
> --
>
> Key: HBASE-18407
> URL: https://issues.apache.org/jira/browse/HBASE-18407
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18407.000.patch
>
>
> Configuration::SetBool internally converts true/false to 1/0 using 
> boost::lexical_cast(value), this results in runtime exception 
> with 'Unexpected value found while conversion to bool.' in 
> Configuration::GetBool since it only recognizes "true" or "false" as string 
> representation of true or false. 1/0 should be considered in the check in 
> GetBool.



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


[jira] [Updated] (HBASE-18407) [C++] make Configuration::Set/GetBool work for both true/false and 1/0

2017-07-19 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18407?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18407:
--
Attachment: HBASE-18407.000.patch

> [C++] make Configuration::Set/GetBool work for both true/false and 1/0
> --
>
> Key: HBASE-18407
> URL: https://issues.apache.org/jira/browse/HBASE-18407
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18407.000.patch
>
>
> Configuration::SetBool internally converts true/false to 1/0 using 
> boost::lexical_cast(value), this results in runtime exception 
> with 'Unexpected value found while conversion to bool.' in 
> Configuration::GetBool since it only recognizes "true" or "false" as string 
> representation of true or false. 1/0 should be considered in the check in 
> GetBool.



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


[jira] [Updated] (HBASE-18407) [C++] make Configuration::Set/GetBool work for both true/false and 1/0

2017-07-19 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18407?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18407:
--
Summary: [C++] make Configuration::Set/GetBool work for both true/false and 
1/0  (was: [C++] make Configuration::Set/GetBool work for both true/false and 
1/0 )

> [C++] make Configuration::Set/GetBool work for both true/false and 1/0
> --
>
> Key: HBASE-18407
> URL: https://issues.apache.org/jira/browse/HBASE-18407
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18407.000.patch
>
>
> Configuration::SetBool internally converts true/false to 1/0 using 
> boost::lexical_cast(value), this results in runtime exception 
> with 'Unexpected value found while conversion to bool.' in 
> Configuration::GetBool since it only recognizes "true" or "false" as string 
> representation of true or false. 1/0 should be considered in the check in 
> GetBool.



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


[jira] [Updated] (HBASE-18407) [C++] make Configuration::Set/GetBool work for both true/false and 1/0

2017-07-19 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18407?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18407:
--
Description: Configuration::SetBool internally converts true/false to 1/0 
using boost::lexical_cast(value), this results in runtime 
exception with 'Unexpected value found while conversion to bool.' in 
Configuration::GetBool since it only recognizes "true" or "false" as string 
representation of true or false. 1/0 should be considered in the check in 
GetBool.  (was: Configuration::SetBool internally converts true/false to 1/0 
using boost::lexical_cast(value), this results in runtime 
exception with 'Unexpected value found while conversion to bool.' in 
Configuration::GetBool since it only recognizes "true" or "false" as string 
representation of true or false.)

> [C++] make Configuration::Set/GetBool work for both true/false and 1/0 
> ---
>
> Key: HBASE-18407
> URL: https://issues.apache.org/jira/browse/HBASE-18407
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
>
> Configuration::SetBool internally converts true/false to 1/0 using 
> boost::lexical_cast(value), this results in runtime exception 
> with 'Unexpected value found while conversion to bool.' in 
> Configuration::GetBool since it only recognizes "true" or "false" as string 
> representation of true or false. 1/0 should be considered in the check in 
> GetBool.



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


[jira] [Updated] (HBASE-18407) [C++] make Configuration::Set/GetBool work for both true/false and 1/0

2017-07-19 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18407?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18407:
--
Summary: [C++] make Configuration::Set/GetBool work for both true/false and 
1/0   (was: [C++] Configuration::SetBool should convert bool value to "true" or 
"false")

> [C++] make Configuration::Set/GetBool work for both true/false and 1/0 
> ---
>
> Key: HBASE-18407
> URL: https://issues.apache.org/jira/browse/HBASE-18407
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
>
> Configuration::SetBool internally converts true/false to 1/0 using 
> boost::lexical_cast(value), this results in runtime exception 
> with 'Unexpected value found while conversion to bool.' in 
> Configuration::GetBool since it only recognizes "true" or "false" as string 
> representation of true or false.



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


[jira] [Comment Edited] (HBASE-18338) [C++] Implement RpcTestServer

2017-07-18 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou edited comment on HBASE-18338 at 7/19/17 12:09 AM:
-

posted patch v5.
# reuses RpcClient in test
# introduces Configuration::HBASE_CLIENT_RPC_TEST_MODE to bypass some code for 
RPC test only, otherwise tests will fail given RpcTestServer implementation.
# binds to port 0 to be ephemeral
# throws exception in test
# removes rpc-test-client.h and rpc-test-client-handler.h 

Let's refill the TODO in follow up patch, thanks [~enis] for reviews.


was (Author: xiaobingo):
posted patch v5.
# reuses RpcClient in test
# binds to port 0 to be ephemeral
# throws exception in test
# removes rpc-test-client.h and rpc-test-client-handler.h 

Let's refill the TODO in follow up patch, thanks [~enis] for reviews.

> [C++] Implement RpcTestServer
> -
>
> Key: HBASE-18338
> URL: https://issues.apache.org/jira/browse/HBASE-18338
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18338.000.patch, HBASE-18338.001.patch, 
> HBASE-18338.002.patch, HBASE-18338.003.patch, HBASE-18338.004.patch, 
> HBASE-18338.005.patch
>
>
> This is a spin-off from HBASE-18078. We need RpcTestServer to simulate 
> various communication scenarios, e.g. timeout, connection aborted, long 
> running services and so on.



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


[jira] [Commented] (HBASE-18338) [C++] Implement RpcTestServer

2017-07-18 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18338:
---

posted patch v5.
# reuses RpcClient in test
# binds to port 0 to be ephemeral
# throws exception in test
# removes rpc-test-client.h and rpc-test-client-handler.h 

Let's refill the TODO in follow up patch, thanks [~enis] for reviews.

> [C++] Implement RpcTestServer
> -
>
> Key: HBASE-18338
> URL: https://issues.apache.org/jira/browse/HBASE-18338
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18338.000.patch, HBASE-18338.001.patch, 
> HBASE-18338.002.patch, HBASE-18338.003.patch, HBASE-18338.004.patch, 
> HBASE-18338.005.patch
>
>
> This is a spin-off from HBASE-18078. We need RpcTestServer to simulate 
> various communication scenarios, e.g. timeout, connection aborted, long 
> running services and so on.



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


[jira] [Updated] (HBASE-18338) [C++] Implement RpcTestServer

2017-07-18 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18338?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18338:
--
Attachment: HBASE-18338.005.patch

> [C++] Implement RpcTestServer
> -
>
> Key: HBASE-18338
> URL: https://issues.apache.org/jira/browse/HBASE-18338
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18338.000.patch, HBASE-18338.001.patch, 
> HBASE-18338.002.patch, HBASE-18338.003.patch, HBASE-18338.004.patch, 
> HBASE-18338.005.patch
>
>
> This is a spin-off from HBASE-18078. We need RpcTestServer to simulate 
> various communication scenarios, e.g. timeout, connection aborted, long 
> running services and so on.



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


[jira] [Commented] (HBASE-18400) [C++] ConnectionId Equals/Hash should consider service_name

2017-07-18 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18400:
---

Thanks [~tedyu] and [~enis] for reviewing/committing it.

> [C++] ConnectionId Equals/Hash should consider service_name
> ---
>
> Key: HBASE-18400
> URL: https://issues.apache.org/jira/browse/HBASE-18400
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Fix For: HBASE-14850
>
> Attachments: HBASE-18400.000.patch
>
>
> Currently only security::User, host and port are taken into account in the 
> implementation of ConnectionIdEquals and ConnectionIdHash. It makes sense to 
> allocate dedicated RPC connection for a specific service, so service_name 
> should be added to implementation;



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


[jira] [Created] (HBASE-18407) [C++] Configuration::SetBool should convert bool value to "true" or "false"

2017-07-18 Thread Xiaobing Zhou (JIRA)
Xiaobing Zhou created HBASE-18407:
-

 Summary: [C++] Configuration::SetBool should convert bool value to 
"true" or "false"
 Key: HBASE-18407
 URL: https://issues.apache.org/jira/browse/HBASE-18407
 Project: HBase
  Issue Type: Sub-task
Reporter: Xiaobing Zhou
Assignee: Xiaobing Zhou


Configuration::SetBool internally converts true/false to 1/0 using 
boost::lexical_cast(value), this results in runtime exception with 
'Unexpected value found while conversion to bool.' in Configuration::GetBool 
since it only recognizes "true" or "false" as string representation of true or 
false.



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


[jira] [Commented] (HBASE-18400) [C++] ConnectionId Equals/Hash should consider service_name

2017-07-18 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18400:
---

Forgot to mention EXPECT_CALL is the assertion.

> [C++] ConnectionId Equals/Hash should consider service_name
> ---
>
> Key: HBASE-18400
> URL: https://issues.apache.org/jira/browse/HBASE-18400
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18400.000.patch
>
>
> Currently only security::User, host and port are taken into account in the 
> implementation of ConnectionIdEquals and ConnectionIdHash. It makes sense to 
> allocate dedicated RPC connection for a specific service, so service_name 
> should be added to implementation;



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


[jira] [Commented] (HBASE-18400) [C++] ConnectionId Equals/Hash should consider service_name

2017-07-18 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18400:
---

Hi [~tedyu], thanks for your review.

The last 8 lines are just using scope to avoid duplicate variables (e.g. 
remote_id) declarations, but call GetConnection four times so that 
ConnectionFactory::Connect and ConnectionFactory::MakeBootstrap are invoked 
only two times, which is the semantics of connection pool.

> [C++] ConnectionId Equals/Hash should consider service_name
> ---
>
> Key: HBASE-18400
> URL: https://issues.apache.org/jira/browse/HBASE-18400
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18400.000.patch
>
>
> Currently only security::User, host and port are taken into account in the 
> implementation of ConnectionIdEquals and ConnectionIdHash. It makes sense to 
> allocate dedicated RPC connection for a specific service, so service_name 
> should be added to implementation;



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


[jira] [Updated] (HBASE-18400) [C++] ConnectionId Equals/Hash should consider service_name

2017-07-17 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18400?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18400:
--
Attachment: HBASE-18400.000.patch

Posted v0 for reviews, thx.

> [C++] ConnectionId Equals/Hash should consider service_name
> ---
>
> Key: HBASE-18400
> URL: https://issues.apache.org/jira/browse/HBASE-18400
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18400.000.patch
>
>
> Currently only security::User, host and port are taken into account in the 
> implementation of ConnectionIdEquals and ConnectionIdHash. It makes sense to 
> allocate dedicated RPC connection for a specific service, so service_name 
> should be added to implementation;



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


[jira] [Updated] (HBASE-18400) [C++] ConnectionId Equals/Hash should consider service_name

2017-07-17 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18400?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18400:
--
Status: Patch Available  (was: Open)

> [C++] ConnectionId Equals/Hash should consider service_name
> ---
>
> Key: HBASE-18400
> URL: https://issues.apache.org/jira/browse/HBASE-18400
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18400.000.patch
>
>
> Currently only security::User, host and port are taken into account in the 
> implementation of ConnectionIdEquals and ConnectionIdHash. It makes sense to 
> allocate dedicated RPC connection for a specific service, so service_name 
> should be added to implementation;



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


[jira] [Created] (HBASE-18400) [C++] ConnectionId Equals/Hash should consider service_name

2017-07-17 Thread Xiaobing Zhou (JIRA)
Xiaobing Zhou created HBASE-18400:
-

 Summary: [C++] ConnectionId Equals/Hash should consider 
service_name
 Key: HBASE-18400
 URL: https://issues.apache.org/jira/browse/HBASE-18400
 Project: HBase
  Issue Type: Sub-task
Reporter: Xiaobing Zhou
Assignee: Xiaobing Zhou


Currently only security::User, host and port are taken into account in the 
implementation of ConnectionIdEquals and ConnectionIdHash. It makes sense to 
allocate dedicated RPC connection for a specific service, so service_name 
should be added to implementation;



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


[jira] [Commented] (HBASE-18338) [C++] Implement RpcTestServer

2017-07-17 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18338:
---

Posted v4:
# add dispatch code to ping/echo/error ... implementation
# did some refactoring to be modular.
# did clean work

Will reuse RpcClient in the next patch instead of rpc-test-client.h and 
rpc-test-client-handler.h which exist only for the reason of avoiding 
dependencies initially. So reviews can skip rpc-test-client.h and 
rpc-test-client-handler.h.


> [C++] Implement RpcTestServer
> -
>
> Key: HBASE-18338
> URL: https://issues.apache.org/jira/browse/HBASE-18338
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18338.000.patch, HBASE-18338.001.patch, 
> HBASE-18338.002.patch, HBASE-18338.003.patch, HBASE-18338.004.patch
>
>
> This is a spin-off from HBASE-18078. We need RpcTestServer to simulate 
> various communication scenarios, e.g. timeout, connection aborted, long 
> running services and so on.



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


[jira] [Updated] (HBASE-18338) [C++] Implement RpcTestServer

2017-07-17 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18338?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18338:
--
Status: Patch Available  (was: Open)

> [C++] Implement RpcTestServer
> -
>
> Key: HBASE-18338
> URL: https://issues.apache.org/jira/browse/HBASE-18338
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18338.000.patch, HBASE-18338.001.patch, 
> HBASE-18338.002.patch, HBASE-18338.003.patch, HBASE-18338.004.patch
>
>
> This is a spin-off from HBASE-18078. We need RpcTestServer to simulate 
> various communication scenarios, e.g. timeout, connection aborted, long 
> running services and so on.



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


[jira] [Updated] (HBASE-18338) [C++] Implement RpcTestServer

2017-07-17 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18338?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18338:
--
Attachment: HBASE-18338.004.patch

> [C++] Implement RpcTestServer
> -
>
> Key: HBASE-18338
> URL: https://issues.apache.org/jira/browse/HBASE-18338
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18338.000.patch, HBASE-18338.001.patch, 
> HBASE-18338.002.patch, HBASE-18338.003.patch, HBASE-18338.004.patch
>
>
> This is a spin-off from HBASE-18078. We need RpcTestServer to simulate 
> various communication scenarios, e.g. timeout, connection aborted, long 
> running services and so on.



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


[jira] [Commented] (HBASE-18338) [C++] Implement RpcTestServer

2017-07-13 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18338:
---

Posted v3:
# implemented Echo, however, there's no dispatch code to easily add other test 
functions
# added unit test for Echo, see also hbase-rpc-test.cc

Will add dispatch code based on method name for next and do some clean work.

> [C++] Implement RpcTestServer
> -
>
> Key: HBASE-18338
> URL: https://issues.apache.org/jira/browse/HBASE-18338
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18338.000.patch, HBASE-18338.001.patch, 
> HBASE-18338.002.patch, HBASE-18338.003.patch
>
>
> This is a spin-off from HBASE-18078. We need RpcTestServer to simulate 
> various communication scenarios, e.g. timeout, connection aborted, long 
> running services and so on.



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


[jira] [Updated] (HBASE-18338) [C++] Implement RpcTestServer

2017-07-13 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18338?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18338:
--
Attachment: HBASE-18338.003.patch

> [C++] Implement RpcTestServer
> -
>
> Key: HBASE-18338
> URL: https://issues.apache.org/jira/browse/HBASE-18338
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18338.000.patch, HBASE-18338.001.patch, 
> HBASE-18338.002.patch, HBASE-18338.003.patch
>
>
> This is a spin-off from HBASE-18078. We need RpcTestServer to simulate 
> various communication scenarios, e.g. timeout, connection aborted, long 
> running services and so on.



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


[jira] [Comment Edited] (HBASE-18338) [C++] Implement RpcTestServer

2017-07-12 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou edited comment on HBASE-18338 at 7/12/17 9:50 PM:


Posted v2:
# being able to do ping/pong
# removed Bonk and Xtruct
# fixed all compile issues
# changed serde/rpc.h to serde/rpc-serde.h for less 
confusion.

Will port protobuf types into RPC test client/server by protobuf-compiling 
test.proto and test_rpc_service.proto.


was (Author: xiaobingo):
Posted v2:
# being able to do ping/pong
# removed Bonk and Xtruct
# fixed all compile issues

Will port protobuf types into RPC test client/server by protobuf-compiling 
test.proto and test_rpc_service.proto.

> [C++] Implement RpcTestServer
> -
>
> Key: HBASE-18338
> URL: https://issues.apache.org/jira/browse/HBASE-18338
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18338.000.patch, HBASE-18338.001.patch, 
> HBASE-18338.002.patch
>
>
> This is a spin-off from HBASE-18078. We need RpcTestServer to simulate 
> various communication scenarios, e.g. timeout, connection aborted, long 
> running services and so on.



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


[jira] [Commented] (HBASE-18338) [C++] Implement RpcTestServer

2017-07-12 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18338:
---

Posted v2:
# being able to do ping/pong
# removed Bonk and Xtruct
# fixed all compile issues

Will port protobuf types into RPC test client/server by protobuf-compiling 
test.proto and test_rpc_service.proto.

> [C++] Implement RpcTestServer
> -
>
> Key: HBASE-18338
> URL: https://issues.apache.org/jira/browse/HBASE-18338
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18338.000.patch, HBASE-18338.001.patch, 
> HBASE-18338.002.patch
>
>
> This is a spin-off from HBASE-18078. We need RpcTestServer to simulate 
> various communication scenarios, e.g. timeout, connection aborted, long 
> running services and so on.



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


[jira] [Updated] (HBASE-18338) [C++] Implement RpcTestServer

2017-07-12 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18338?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18338:
--
Attachment: HBASE-18338.002.patch

> [C++] Implement RpcTestServer
> -
>
> Key: HBASE-18338
> URL: https://issues.apache.org/jira/browse/HBASE-18338
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18338.000.patch, HBASE-18338.001.patch, 
> HBASE-18338.002.patch
>
>
> This is a spin-off from HBASE-18078. We need RpcTestServer to simulate 
> various communication scenarios, e.g. timeout, connection aborted, long 
> running services and so on.



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


[jira] [Comment Edited] (HBASE-18338) [C++] Implement RpcTestServer

2017-07-10 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou edited comment on HBASE-18338 at 7/10/17 10:16 PM:
-

Posted v1.

#  learned from wangle RPC example, built a HBase test client and test server 
and the corresponding client/server handlers.
# bridged native hbase::request and hbase::response into Bonk and Xtruct to do 
easy test

Need some work to make it runnable in context of native hbase::request and 
hbase::response.



was (Author: xiaobingo):
Posted v1.

#  learned from wangle RPC example, built an HBase test client and test server 
and the corresponding client/server handlers.
# bridged native hbase::request and hbase::response into Bonk and Xtruct to do 
easy test

Need some work to make it runnable in context of native hbase::request and 
hbase::response.


> [C++] Implement RpcTestServer
> -
>
> Key: HBASE-18338
> URL: https://issues.apache.org/jira/browse/HBASE-18338
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18338.000.patch, HBASE-18338.001.patch
>
>
> This is a spin-off from HBASE-18078. We need RpcTestServer to simulate 
> various communication scenarios, e.g. timeout, connection aborted, long 
> running services and so on.



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


[jira] [Commented] (HBASE-18338) [C++] Implement RpcTestServer

2017-07-10 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18338:
---

Posted v1.

#  learned from wangle RPC example, built an HBase test client and test server 
and the corresponding client/server handlers.
# bridged native hbase::request and hbase::response into Bonk and Xtruct to do 
easy test

Need some work to make it runnable in context of native hbase::request and 
hbase::response.


> [C++] Implement RpcTestServer
> -
>
> Key: HBASE-18338
> URL: https://issues.apache.org/jira/browse/HBASE-18338
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18338.000.patch, HBASE-18338.001.patch
>
>
> This is a spin-off from HBASE-18078. We need RpcTestServer to simulate 
> various communication scenarios, e.g. timeout, connection aborted, long 
> running services and so on.



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


[jira] [Updated] (HBASE-18338) [C++] Implement RpcTestServer

2017-07-10 Thread Xiaobing Zhou (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18338?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaobing Zhou updated HBASE-18338:
--
Attachment: HBASE-18338.001.patch

> [C++] Implement RpcTestServer
> -
>
> Key: HBASE-18338
> URL: https://issues.apache.org/jira/browse/HBASE-18338
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18338.000.patch, HBASE-18338.001.patch
>
>
> This is a spin-off from HBASE-18078. We need RpcTestServer to simulate 
> various communication scenarios, e.g. timeout, connection aborted, long 
> running services and so on.



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


[jira] [Comment Edited] (HBASE-18338) [C++] Implement RpcTestServer

2017-07-09 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou edited comment on HBASE-18338 at 7/9/17 4:58 PM:
---

Posted v0.
# simplified the implementation a lot.
# added RpcTestServerHandler and RpcTestServerPipelineFactory
# added test.proto and test_rpc_service.proto from Java side in order to 
implement server stubs like echo/ping

Will add implementation of server stubs by hooking protobuf engine into 
RpcTestServerHandler in next patch.



was (Author: xiaobingo):
Posted v0.
# simplified the implementation a lot.
# added RpcTestServerHandler and RpcTestServerPipelineFactory
# added test.proto and test_rpc_service.proto from Java side in order to 
implement server stubs like echo/ping

Will add implementation of server stubs to hook protobuf engine into 
RpcTestServerHandler in next patch.


> [C++] Implement RpcTestServer
> -
>
> Key: HBASE-18338
> URL: https://issues.apache.org/jira/browse/HBASE-18338
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18338.000.patch
>
>
> This is a spin-off from HBASE-18078. We need RpcTestServer to simulate 
> various communication scenarios, e.g. timeout, connection aborted, long 
> running services and so on.



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


[jira] [Commented] (HBASE-18078) [C++] Harden RPC by handling various communication abnormalities

2017-07-07 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18078:
---

This ticket will not contain anything related to TestRpcServer, it will be in 
HBASE-18338.

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


[jira] [Commented] (HBASE-18338) [C++] Implement RpcTestServer

2017-07-07 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18338:
---

Posted v0.
# simplified the implementation a lot.
# added RpcTestServerHandler and RpcTestServerPipelineFactory
# added test.proto and test_rpc_service.proto from Java side in order to 
implement server stubs like echo/ping

Will add implementation of server stubs to hook protobuf engine into 
RpcTestServerHandler in next patch.


> [C++] Implement RpcTestServer
> -
>
> Key: HBASE-18338
> URL: https://issues.apache.org/jira/browse/HBASE-18338
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18338.000.patch
>
>
> This is a spin-off from HBASE-18078. We need RpcTestServer to simulate 
> various communication scenarios, e.g. timeout, connection aborted, long 
> running services and so on.



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


  1   2   3   >