[
https://issues.apache.org/jira/browse/ZOOKEEPER-991?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12994848#comment-12994848
]
Vishal K commented on ZOOKEEPER-991:
------------------------------------
Please see https://issues.apache.org/jira/browse/ZOOKEEPER-933
> 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.3.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 is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira