Rick Trudeau created ZOOKEEPER-2989: ---------------------------------------
Summary: IPv6 literal address causes problems for Quorum members Key: ZOOKEEPER-2989 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2989 Project: ZooKeeper Issue Type: Bug Components: quorum Affects Versions: 3.5.3 Reporter: Rick Trudeau We're using ZK 3.5.3-beta. When using literal IPv6 addresses in the zoo.cfg.dynamic file, ZK fails to come up with the connection to the peer ZKs keeps getting reset. zookeeper.log indicates a badly formed address is the cause. {noformat} <2018.03.01 15:14:30 163 -0500><E><sdn3></2001:db8:0:0:0:0:0:4:3888><org.apache.zookeeper.server.quorum.QuorumCnxManager> org.apache.zookeeper.server.quorum.QuorumCnxManager$InitialMessage$InitialMessageException: Badly formed address: 2001:db8:0:0:0:0:0:2:3888{noformat} Our zoo.cfg.dynamic uses literal IPv6 addresses which according to ZOOKEEPER-1460 is supported. {noformat} server.1=[2001:db8::2]:2888:3888;2181 server.2=[2001:db8::3]:2888:3888;2181 server.3=[2001:db8::4]:2888:3888;2181{noformat} Digging into QuorumCnxManager.java, InitialMessage.parse attemps to seperate the host portion from the port portion using ":" as a delimeter, which is a problem for IPv6 IPs. And there's this comment: {code:java} // FIXME: IPv6 is not supported. Using something like Guava's HostAndPort // parser would be good.{code} So it looks like peers address:port is failing to be parsed if they are specified as literal IPv6 addresses. To confirm a workaround, I replaced my zoo.cfg.dynamic with hostnames instead, and everything worked as expected. -- This message was sent by Atlassian JIRA (v7.6.3#76005)