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