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

ASF GitHub Bot commented on ZOOKEEPER-2184:
-------------------------------------------

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

    https://github.com/apache/zookeeper/pull/150#discussion_r96439377
  
    --- Diff: src/java/main/org/apache/zookeeper/client/StaticHostProvider.java 
---
    @@ -87,15 +73,69 @@ public StaticHostProvider(Collection<InetSocketAddress> 
serverAddresses)
             Collections.shuffle(this.serverAddresses);
         }
     
    +    /**
    +     * In Java 7, we have a method getHostString, but earlier versions do 
not support it.
    +     * This method is to provide a replacement for 
InetSocketAddress.getHostString().
    +     *
    +     * It evaluates to a hostname if one is available and otherwise it 
returns the
    +     * string representation of the IP address.
    +     *
    +     * @param addr
    +     * @return Hostname string of address parameter
    +     */
    +    private String getHostString(InetSocketAddress addr) {
    --- End diff --
    
    We can do it, but I'm not super convinced we should because we are 
essentially using a method with undocumented API. Perhaps it does the same as 
the one in Java 7, with the difference that it is public, but I'm worried that 
there could be some correctness issue involved. Do you know more about it?
    
    In any case, I'm going to push the changes so that we see how it looks like.


> Zookeeper Client should re-resolve hosts when connection attempts fail
> ----------------------------------------------------------------------
>
>                 Key: ZOOKEEPER-2184
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2184
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: java client
>    Affects Versions: 3.4.6, 3.5.0
>         Environment: Ubuntu 14.04 host, Docker containers for Zookeeper & 
> Kafka
>            Reporter: Robert P. Thille
>            Assignee: Flavio Junqueira
>              Labels: easyfix, patch
>             Fix For: 3.4.10, 3.5.3
>
>         Attachments: ZOOKEEPER-2184.patch
>
>
> Testing in a Docker environment with a single Kafka instance using a single 
> Zookeeper instance. Restarting the Zookeeper container will cause it to 
> receive a new IP address. Kafka will never be able to reconnect to Zookeeper 
> and will hang indefinitely. Updating DNS or /etc/hosts with the new IP 
> address will not help the client to reconnect as the 
> zookeeper/client/StaticHostProvider resolves the connection string hosts at 
> creation time and never re-resolves.
> A solution would be for the client to notice that connection attempts fail 
> and attempt to re-resolve the hostnames in the connectString.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to