Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 3.3.2
    • Fix Version/s: 3.5.4, 3.6.0
    • Component/s: quorum
    • Labels:
      None
    • Environment:

      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

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                sandep.amit Sandeep Maheshwari
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated: