forget. I did not see you changed all ports for server.3. sorry.
On Thu, Jun 19, 2014 at 2:02 PM, Olivier Mallassi < [email protected]> wrote: > hi > > I am not sure to understand the lines server.1=localhost:2801:3801;2181 > does it mean server.1=localhost:2801:3801 and clientPort set to 2181? > > I assume yes. > in that case, your behavior looks normal > http://zookeeper.apache.org/doc/r3.4.5/zookeeperAdmin.html#sc_minimumConfiguration > > > server.x=[hostname]:nnnnn[:nnnnn], etc > > (No Java system property) > > servers making up the ZooKeeper ensemble. When the server starts up, it > determines which server it is by looking for the file myid in the data > directory. That file contains the server number, in ASCII, and it should > match *x* in *server.x* in the left hand side of this setting. > > The list of servers that make up ZooKeeper servers that is used by the > clients must match the list of ZooKeeper servers that each ZooKeeper server > has. > > There are two port numbers *nnnnn*. The first followers use to connect to > the leader, and the second is for leader election. The leader election port > is only necessary if electionAlg is 1, 2, or 3 (default). If electionAlg is > 0, then the second port is not necessary. If you want to test multiple > servers on a single machine, then different ports can be used for each > server. > > > so regarding your config, you have just change to port for client > connection not for "membership/leader connection". and it looks that is why > the server.3 joins the cluster but no longer accept tcp request on 2183 but > on 2184. > > HTH. > > > > On Thu, Jun 19, 2014 at 1:03 PM, Niko Vuokko <[email protected]> > wrote: > >> Starting from a stable 3-member quorum: >> >> server.1=localhost:2801:3801;2181 >> server.2=localhost:2802:3802;2182 >> server.3=localhost:2803:3803;2183 >> >> I then kill server 3, clear its data directory, keep its myid=3 and change >> its static configuration to >> >> server.1=localhost:2801:3801;2181 >> server.2=localhost:2802:3802;2182 >> server.3=localhost:2804:3804;2184 >> >> Now what I would expect is that this "new" server 3 will not join the >> quorum since the ports don't match what the servers 1 and 2 expect. >> However, it can join. The problem is that the "new" server 3 does not >> respect its configuration. Its logs will contain the new port number 2184, >> but it will actually pick up the dynamic configuration offered by the >> quorum and open up the old ports 2183 etc. After joining again, the >> dynamic >> configuration file for server 3 contains >> >> server.3=localhost:2803:3803:participant;0.0.0.0:2183 >> >> Also, echo conf | localhost 2184 never replies but echo conf | localhost >> 2183 returns >> >> server.3=localhost:2803:3803:participant;0.0.0.0:2183 >> >> Is this actually intentional or a bug? >> >> >> Best, >> Niko Vuokko >> > >
