hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Enis Soztutar (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-18578) [C++] Add pause for RPC test
Date Tue, 22 Aug 2017 01:08:00 GMT

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

Enis Soztutar updated HBASE-18578:
    Attachment: hbase-18578-v2.patch

[~xiaobingo] you are getting broken promise, because if a promise is left unfulfilled at the
time of the destruction, then the future throws broken promise, the code is here: https://github.com/facebook/folly/blob/master/folly/futures/detail/Core.h#L210.

The problem is that in the test for the pause RPC, the test does and async RPC, but does not
wait on the returned Future in v1 patch, and instead goes ahead and stops the server which
then causes the RPC Client pipeline to the destructed. Since the RPC takes 500ms, it always
fails because server and pipeline is destructed. The patch at HBASE-18204 solves the broken
promise problem because at the time of pipeline destruction, we already fulfill the promises
from the client-dispatcher. I've tested the patch with this patch, and it is doing the expected

The fix to the test is calling Future.get() before stopping the server. Attaching v2. 

> [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, hbase-18578-v2.patch

This message was sent by Atlassian JIRA

View raw message