Hello, Can you try to change your configs by not using 0.0.0.0 in the ZOO_SERVERS? Using 0.0.0.0 is not a recommended config since 3.5. If the java process can not bind (due to some virtual network issue) to the host provided in it's config, then you can use the quorumListenOnAllIPs parameter.
So you should have the very same configuration for all nodes in your cluster, like: ZOO_CFG_EXTRA="quorumListenOnAllIPs=true" ZOO_SERVERS=server.1=x.x.x.1:2888:3888:participant;2181 \ server.2=x.x.x.2:2888:3888:participant;2181 \ server.3=x.x.x.3:2888:3888:participant;2181 This should have the effect that every server is binding on 0.0.0.0 locally, yet still having a consistent view of the server hostnames. BTW, unfortunately there is no such thing as "official zookeeper Docker image", at least it is not maintained by the Apache ZooKeeper community. (I don't know who is maintaining the image on dockerHub https://hub.docker.com/_/zookeeper - it would be nice to ask them to update their examples / documentation) Kind regards, Mate On Thu, Jul 16, 2020 at 9:27 AM Thilo-Alexander Ginkel <[email protected]> wrote: > Hello again, > > just figured out that my rolling restart problems may be caused by > ZOOKEEPER-3829 (c.f. https://github.com/apache/zookeeper/pull/1356), > so I tried to set reconfigEnabled=true as a workaround, but that fails > as Zookeeper attempts to bind to x.x.x.1 instead of 0.0.0.0 (config > still lists 0.0.0.0 for the local node, respectively) during startup > in that case, so that's apparently not feasible in a Docker > environment: > > 2020-07-16 07:22:20,141 [myid:1] - ERROR > > [ListenerHandler-/x.x.x.1:3888:QuorumCnxManager$Listener$ListenerHandler@1093 > ] > - Exception while listening > java.net.BindException: Cannot assign requested address (Bind failed) > at java.base/java.net.PlainSocketImpl.socketBind(Native Method) > at java.base/java.net.AbstractPlainSocketImpl.bind(Unknown Source) > at java.base/java.net.ServerSocket.bind(Unknown Source) > at java.base/java.net.ServerSocket.bind(Unknown Source) > at > org.apache.zookeeper.server.quorum.QuorumCnxManager$Listener$ListenerHandler.createNewServerSocket(QuorumCnxManager.java:1134) > at > org.apache.zookeeper.server.quorum.QuorumCnxManager$Listener$ListenerHandler.acceptConnections(QuorumCnxManager.java:1064) > at > org.apache.zookeeper.server.quorum.QuorumCnxManager$Listener$ListenerHandler.run(QuorumCnxManager.java:1033) > at > java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown > Source) > at java.base/java.util.concurrent.FutureTask.run(Unknown Source) > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown > Source) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown > Source) > at java.base/java.lang.Thread.run(Unknown Source) > 2020-07-16 07:22:21,143 [myid:1] - ERROR > > [ListenerHandler-/x.x.x.1:3888:QuorumCnxManager$Listener$ListenerHandler@1112 > ] > - Leaving listener thread for address 10.147.254.1:3888 after 3 > errors. Use zookeeper.electionPortBindRetry property to increase retry > count. > > Are there any plans to release 3.6.2 including the above fix? > > Regards, > Thilo >
