You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2020/11/09 13:46:25 UTC
[lucene-solr] branch reference_impl_dev updated: @1112 Synchronize
the leader elector.
This is an automated email from the ASF dual-hosted git repository.
markrmiller pushed a commit to branch reference_impl_dev
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
The following commit(s) were added to refs/heads/reference_impl_dev by this push:
new b3297f4 @1112 Synchronize the leader elector.
b3297f4 is described below
commit b3297f4fb6a7d1daf579c08de452a67e0f63605a
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Mon Nov 9 07:46:04 2020 -0600
@1112 Synchronize the leader elector.
---
solr/core/src/java/org/apache/solr/cloud/LeaderElector.java | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/cloud/LeaderElector.java b/solr/core/src/java/org/apache/solr/cloud/LeaderElector.java
index f9556d5..b45dded 100644
--- a/solr/core/src/java/org/apache/solr/cloud/LeaderElector.java
+++ b/solr/core/src/java/org/apache/solr/cloud/LeaderElector.java
@@ -102,7 +102,7 @@ public class LeaderElector implements Closeable {
*
* @param replacement has someone else been the leader already?
*/
- private boolean checkIfIamLeader(final ElectionContext context, boolean replacement) throws KeeperException,
+ private synchronized boolean checkIfIamLeader(final ElectionContext context, boolean replacement) throws KeeperException,
InterruptedException, IOException {
if (isClosed || (zkController != null && zkController.getCoreContainer().isShutDown())) {
if (log.isDebugEnabled()) log.debug("Will not checkIfIamLeader, elector is closed");
@@ -262,7 +262,7 @@ public class LeaderElector implements Closeable {
*
* @return sequential node number
*/
- public boolean joinElection(ElectionContext context, boolean replacement,boolean joinAtHead) throws KeeperException, InterruptedException, IOException {
+ public synchronized boolean joinElection(ElectionContext context, boolean replacement,boolean joinAtHead) throws KeeperException, InterruptedException, IOException {
if (isClosed || (zkController != null && zkController.getCoreContainer().isShutDown())) {
if (log.isDebugEnabled()) log.debug("Will not join election, elector is closed");
return false;
@@ -438,6 +438,10 @@ public class LeaderElector implements Closeable {
* Set up any ZooKeeper nodes needed for leader election.
*/
public void setup(final ElectionContext context) {
+ ElectionContext tmpContext = this.context;
+ if (tmpContext != null) {
+ tmpContext.close();
+ }
this.context = context;
}