GitHub user mkedwards opened a pull request:
https://github.com/apache/zookeeper/pull/719
[ZOOKEEPER-2778] QuorumPeer: address potential reconfiguration deadlocks
* QuorumPeer: encapsulate quorum/election/client addresses in an
AddressTuple held through an AtomicReference
* QuorumPeer/QuorumCnxManager: address deadlock and visibility issues
* QuorumPeer: add fast path for already-non-null quorum/election address
* QuorumPeer: fix access to newly private data members from ReconfigTest
* LeaderBeanTest: set up mock QuorumVerifier so that addresses get set
* QuorumPeer: warn when clobbering existing election algorithm
* QuorumPeer: halt old QCM when clobbering existing election algorithm
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/mkedwards/zookeeper ZOOKEEPER-2778-for-master
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/zookeeper/pull/719.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #719
----
commit 53ab259c38ee4d33c8f3ab26cde82992e2074537
Author: Michael Edwards <medwards@...>
Date: 2018-11-20T13:33:09Z
[ZOOKEEPER-2778] QuorumPeer: address potential deadlocks related to
reconfiguration
* QuorumPeer: encapsulate quorum/election/client addresses in an
AddressTuple held through an AtomicReference
* QuorumPeer/QuorumCnxManager: address deadlock and visibility issues
* QuorumPeer: add fast path for already-non-null quorum/election address
* QuorumPeer: fix access to newly private data members from ReconfigTest
* LeaderBeanTest: set up mock QuorumVerifier so that addresses get set
* QuorumPeer: warn when clobbering existing election algorithm
* QuorumPeer: halt old QCM when clobbering existing election algorithm
----
---