[ 
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)

Reply via email to