[ https://issues.apache.org/jira/browse/ZOOKEEPER-2554?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15465940#comment-15465940 ]
Alexander Shraer commented on ZOOKEEPER-2554: --------------------------------------------- I haven't looked closely yet, but the code you quote has the following intention: any server not currently in the view should be a non-voting participant. When you connect server 3, it will adopt the leader's config in which it isn't present, and automatically become such a non-voting participant, before you invoke the reconfig command. So that's working as intended. In this state, when you invoke the reconfig it should become observer. I don't know why this isn't happening, but I think its probably covered by existing tests. I'll try to find time to look into it, but I'd look into two things: The log of server 3, and what is the config file on server 3 right before and after the reconfig is invoked. > reconfig can not add new server as observer > ------------------------------------------- > > Key: ZOOKEEPER-2554 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2554 > Project: ZooKeeper > Issue Type: Bug > Components: server > Affects Versions: 3.5.0, 3.5.1, 3.5.2 > Reporter: Arshad Mohammad > Assignee: Arshad Mohammad > Priority: Critical > Attachments: ZOOKEEPER-2554-01.patch > > > Try to add new observer server using reconfig API, server gets added as > participant. > STEPS: > # create 3 node cluster. > {code} > server.0=127.0.0.1:11223:11224:participant;127.0.0.1:11222 > server.1=127.0.0.1:11226:11227:participant;127.0.0.1:11225 > server.2=127.0.0.1:11229:11230:participant;127.0.0.1:11228 > {code} > # Suppose the 2 is the leader in the above cluster. Configure the new server > as > {code} > server.2=127.0.0.1:11229:11230:participant;127.0.0.1:11228 > server.3=127.0.0.1:11232:11233:observer;127.0.0.1:11231 > {code} > # Connect to 1 and execute the reconfig command > {code} > zkClient.reconfig("server.3=127.0.0.1:11232:11233:observer;127.0.0.1:11231", > null, null, -1, null, null); > {code} > # Verify sever 3. It was supposed to run as observer but it is running as > participant -- This message was sent by Atlassian JIRA (v6.3.4#6332)