curator-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stig Rohde Døssing (JIRA) <j...@apache.org>
Subject [jira] [Created] (CURATOR-402) Curator should not use QuorumServer.addr when updating the connect string dynamically
Date Mon, 24 Apr 2017 18:17:04 GMT
Stig Rohde Døssing created CURATOR-402:
------------------------------------------

             Summary: 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.3.0, 3.2.1
            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)

Mime
View raw message