curator-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CURATOR-402) Curator should not use QuorumServer.addr when updating the connect string dynamically
Date Wed, 12 Jul 2017 06:39:00 GMT

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

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

Github user lvfangmin commented on a diff in the pull request:

    https://github.com/apache/curator/pull/216#discussion_r126874138
  
    --- Diff: curator-framework/src/main/java/org/apache/curator/framework/imps/EnsembleTracker.java
---
    @@ -170,8 +170,10 @@ public static String configToConnectionString(QuorumVerifier data)
throws Except
                 {
                     sb.append(",");
                 }
    -            InetSocketAddress address = Objects.firstNonNull(server.clientAddr, server.addr);
    -            sb.append(address.getAddress().getHostAddress()).append(":").append(address.getPort());
    +            InetSocketAddress clientAddress = server.clientAddr;
    --- End diff --
    
    After ZooKeeper 3.5, if the zoo.cfg is in old format which has clientPort and server list
being defined, then the clientAddr will be 0.0.0.0, which shouldn't be used as the server
hostAddress. CURATOR-392 reported some issues similar, and it has handled this case.


> 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.4.14#64029)

Mime
View raw message