Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
3.3.2
-
None
-
None
-
Windows
Description
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.
Attachments
Issue Links
- duplicates
-
ZOOKEEPER-933 Remove wildcard QuorumPeer.OBSERVER_ID
-
- Open
-