[ https://issues.apache.org/jira/browse/ZOOKEEPER-2989?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
maoling resolved ZOOKEEPER-2989. -------------------------------- Assignee: (was: maoling) Resolution: Duplicate > 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 > Priority: Major > Labels: pull-request-available > Time Spent: 2h 10m > Remaining Estimate: 0h > > 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 > server.2=[2001:db8::3]:2888:3888 > server.3=[2001:db8::4]:2888:3888{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 (v8.3.2#803003)