This is a know issue with debian + java. 
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=560044
Spent a few hours stuck on this myself last week.

-Ivan



On 16 Aug 2010, at 13:28, Martin Waite wrote:

Hi,

I have spent a few hours getting zookeeper election to work on debian
squeeze.

The zookeeper log contained the following error when trying to run an
election:

2010-08-16 11:14:51,316 - WARN [WorkerSender Thread:quorumcnxmana...@361] -
Cannot open channel to 2 at election address vm-024-squeeze-mw/
172.30.30.67:3888
java.net.SocketException: Network is unreachable
       at sun.nio.ch.Net.connect(Native Method)
at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:525)
       at java.nio.channels.SocketChannel.open(SocketChannel.java:164)
       at
org .apache .zookeeper .server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:347)
       at
org .apache .zookeeper .server.quorum.QuorumCnxManager.toSend(QuorumCnxManager.java:320)
       at
org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger $WorkerSender.process(FastLeaderElection.java:353)
       at
org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger $WorkerSender.run(FastLeaderElection.java:326)
       at java.lang.Thread.run(Thread.java:636)

Looking at netstat output, each server was running the listener on the tcpv6
interface only, and I don't think that my network can handle this.

The solution was to disable ipv6 on my servers. In /etc/default/ grub add
the line:

GRUB_CMDLINE_LINUX="ipv6.disable=1"

and then run "update-grub" and reboot.

This fixed the problem.

I am surprised that zookeeper (3.3.1) did not bind to all interfaces.

Will the new clientPortBindHostAddress config support a specification that
can distinguish between tcpv4 and tcpv6 if both are available ?

Also, will an equivalent electionPortBindHostAddress be provided ?

regards,
Martin

Reply via email to