[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-991?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chris Nauroth updated ZOOKEEPER-991:
------------------------------------
    Fix Version/s:     (was: 3.5.2)
                   3.5.3

> QuoromPeer.OBSERVER_ID
> ----------------------
>
>                 Key: ZOOKEEPER-991
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-991
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: quorum
>    Affects Versions: 3.3.2
>         Environment: Windows
>            Reporter: Sandeep Maheshwari
>             Fix For: 3.6.0, 3.5.3
>
>
> I don't understand why do we even need this code at first place.
> if (remoteSid == QuorumPeer.OBSERVER_ID) {
>                /*
>                 * Choose identifier at random. We need a value to identify
>                 * the connection.
>                 */
>                remoteSid = observerCounter--;
>                initializeMessageQueue(remoteSid);
>                LOG.info("Setting arbitrary identifier to observer: " + 
> remoteSid);
>            }
> Even if remove above code from  public Long readRemoteServerID(Socket sock) 
> {} function the FLE will work correctly. Because when any other 
> peer(PARTICIPANT) receive a notification from the observer, that peer won't 
> consider his(observer) vote because of this check
>  if(!self.getVotingView().containsKey(response.sid))
> Hence there is no need of that code. Also bcoz to above code there is a 
> possibility of creating redundant threads (SendWorker-ReceiveWorker) bcoz 
> when same participant try to initiate connection with same peer we are doing 
> (sid = observerCounter--;). So the same observer getting different sid and 
> hence corresponding thread would be crated which will be of no use.
> Please let me know if i am correct.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to