symat opened a new pull request #1631:
URL: https://github.com/apache/zookeeper/pull/1631


   We have a logic in the server code, that would try to connect to an other 
quorum member, based
   on its server ID. We identify the address assigned to this ID first based on 
the last committed
   quorum configuration. If the connection attempt fails (or the server is not 
known in the
   committed configuration) then we try to find the address based on the last 
proposed quorum
   configuration. But we should do the second connection attempt, only if the 
address in the
   last proposed configuration differs from the address in the last committed 
configuration.
   Otherwise we would just retry to connect to the same address that failed 
just right before.
   
   In the current code we have a bug, because we compare the address object 
references (use "!=")
   instead of comparing the objects themselves (using "not equals"). In certain 
edge cases (e.g.
   when the last proposed and last committed addresses are the same, but the 
address is unreachable)
   this bug can lead to unnecessary retry of connection attempts. The normal 
behaviour would be to
   mark this connection attempt to be failed and wait for e.g. the next 
election round or wait for
   the other server to come online and initiate a connection to us.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to