You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@curator.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/04/24 18:36:04 UTC

[jira] [Commented] (CURATOR-402) Curator should not use QuorumServer.addr when updating the connect string dynamically

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

ASF GitHub Bot commented on CURATOR-402:
----------------------------------------

GitHub user srdo opened a pull request:

    https://github.com/apache/curator/pull/216

    CURATOR-402: Curator should not use QuorumServer.addr when updating the connect string dynamically

    …e the client connect string, resulting in a client unable to reconnect
    
    See https://issues.apache.org/jira/browse/CURATOR-402.
    
    I took a look at adding a test for this, but both addresses are null when using a single testing server, and I couldn't find a way to start a testing cluster where clientAddr is null.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/srdo/curator CURATOR-402

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/curator/pull/216.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #216
    
----
commit 942b96368dbd536a61c5cb150bd081a6f0ac2754
Author: Stig Rohde Døssing <sd...@it-minds.dk>
Date:   2017-04-24T18:23:41Z

    Fix EnsembleTracker sometimes using the Zookeeper peer ports to update the client connect string, resulting in a client unable to reconnect

----


> Curator should not use QuorumServer.addr when updating the connect string dynamically
> -------------------------------------------------------------------------------------
>
>                 Key: CURATOR-402
>                 URL: https://issues.apache.org/jira/browse/CURATOR-402
>             Project: Apache Curator
>          Issue Type: Bug
>    Affects Versions: 3.2.1, 3.3.0
>            Reporter: Stig Rohde Døssing
>            Assignee: Jordan Zimmerman
>
> https://issues.apache.org/jira/browse/CURATOR-345 made a change to EnsembleTracker to read the QuorumServer.addr in case the QuorumServer.clientAddr field is null. This doesn't seem right to me. 
> When the Zookeeper cluster is configured with the new clientPort syntax (http://zookeeper.apache.org/doc/r3.5.3-beta/zookeeperReconfig.html#sc_reconfig_clientport), the clientAddr is correctly set:
> {code}
> 19:54:10.691 [main-EventThread] ERROR org.apache.curator.framework.imps.EnsembleTracker - Getting clientAddr /0.0.0.0:2181 and server addr localhost/127.0.0.1:2888
> 19:54:10.691 [main-EventThread] ERROR org.apache.curator.framework.imps.EnsembleTracker - Getting clientAddr /0.0.0.0:2182 and server addr localhost/127.0.0.1:2889
> 19:54:10.691 [main-EventThread] ERROR org.apache.curator.framework.imps.EnsembleTracker - Getting clientAddr /0.0.0.0:2183 and server addr localhost/127.0.0.1:2890
> {code}
> If the ensemble is configured with the old clientPort property, the clientAddr fields will be null:
> {code}
> 19:59:23.801 [main-EventThread] ERROR org.apache.curator.framework.imps.EnsembleTracker - Getting clientAddr null and server addr localhost/127.0.0.1:2888
> 19:59:23.801 [main-EventThread] ERROR org.apache.curator.framework.imps.EnsembleTracker - Getting clientAddr null and server addr localhost/127.0.0.1:2889
> 19:59:23.801 [main-EventThread] ERROR org.apache.curator.framework.imps.EnsembleTracker - Getting clientAddr null and server addr localhost/127.0.0.1:2890
> {code}
> Before https://issues.apache.org/jira/browse/CURATOR-345, this was okay, since using the old clientPort property just wound up making the EnsembleTracker.configToConnectionString method return an empty string, which effectively disables Curators ability to update the connection string.
> With the new behavior, the connect string will be updated to the server addresses (i.e. the peer ports) if the clientAddr fields are null, which will result in Curator being unable to reconnect if the Zookeeper instance needs to be replaced.
> As far as I'm aware the client has no use for the Zookeeper peer ports, so the change from https://issues.apache.org/jira/browse/CURATOR-345 should probably be reverted.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)