diff --git a/changelog/unreleased/SOLR-18035-remove-election-pause-parameter.yml b/changelog/unreleased/SOLR-18035-remove-election-pause-parameter.yml new file mode 100644 index 00000000000..8032d4b62ae --- /dev/null +++ b/changelog/unreleased/SOLR-18035-remove-election-pause-parameter.yml @@ -0,0 +1,7 @@ +title: Remove unused parameter pauseBeforeStart from leader election code +type: removed +authors: + - name: Pierre Salagnac +links: + - name: SOLR-18035 + url: https://issues.apache.org/jira/browse/SOLR-18035 diff --git a/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java b/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java index 7ac0b7175b0..f864d919c93 100644 --- a/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java +++ b/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java @@ -65,7 +65,7 @@ public void cancelElection() throws InterruptedException, KeeperException { } } - abstract void runLeaderProcess(boolean weAreReplacement, int pauseBeforeStartMs) + abstract void runLeaderProcess(boolean weAreReplacement) throws KeeperException, InterruptedException; public void checkIfIamLeaderFired() {} 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 b2ed8c27a3a..813e05b63f0 100644 --- a/solr/core/src/java/org/apache/solr/cloud/LeaderElector.java +++ b/solr/core/src/java/org/apache/solr/cloud/LeaderElector.java @@ -165,7 +165,7 @@ context.leaderSeqPath, watchedNode, getSeq(context.leaderSeqPath), context), protected void runIamLeaderProcess(final ElectionContext context, boolean weAreReplacement) throws KeeperException, InterruptedException { - context.runLeaderProcess(weAreReplacement, 0); + context.runLeaderProcess(weAreReplacement); } /** diff --git a/solr/core/src/java/org/apache/solr/cloud/OverseerElectionContext.java b/solr/core/src/java/org/apache/solr/cloud/OverseerElectionContext.java index 270d746bc4e..0dfc5d087d2 100644 --- a/solr/core/src/java/org/apache/solr/cloud/OverseerElectionContext.java +++ b/solr/core/src/java/org/apache/solr/cloud/OverseerElectionContext.java @@ -53,8 +53,7 @@ public OverseerElectionContext( } @Override - void runLeaderProcess(boolean weAreReplacement, int pauseBeforeStartMs) - throws KeeperException, InterruptedException { + void runLeaderProcess(boolean weAreReplacement) throws KeeperException, InterruptedException { if (isClosed) { return; } @@ -63,14 +62,7 @@ void runLeaderProcess(boolean weAreReplacement, int pauseBeforeStartMs) ZkNodeProps myProps = new ZkNodeProps(ID, id); zkClient.makePath(leaderPath, Utils.toJSON(myProps), CreateMode.EPHEMERAL); - if (pauseBeforeStartMs > 0) { - try { - Thread.sleep(pauseBeforeStartMs); - } catch (InterruptedException e) { - Thread.interrupted(); - log.warn("Wait interrupted ", e); - } - } + synchronized (this) { if (!this.isClosed && !overseer.getZkController().getCoreContainer().isShutDown()) { overseer.start(id); diff --git a/solr/core/src/java/org/apache/solr/cloud/ShardLeaderElectionContext.java b/solr/core/src/java/org/apache/solr/cloud/ShardLeaderElectionContext.java index a8ad90df364..16a29f89a58 100644 --- a/solr/core/src/java/org/apache/solr/cloud/ShardLeaderElectionContext.java +++ b/solr/core/src/java/org/apache/solr/cloud/ShardLeaderElectionContext.java @@ -103,8 +103,7 @@ public ElectionContext copy() { * weAreReplacement: has someone else been the leader already? */ @Override - void runLeaderProcess(boolean weAreReplacement, int pauseBeforeStart) - throws KeeperException, InterruptedException { + void runLeaderProcess(boolean weAreReplacement) throws KeeperException, InterruptedException { String coreName = leaderProps.getStr(ZkStateReader.CORE_NAME_PROP); ActionThrottle lt; try (SolrCore core = cc.getCore(coreName)) { @@ -296,7 +295,7 @@ void runLeaderProcess(boolean weAreReplacement, int pauseBeforeStart) coreNodeName); zkController.getShardTerms(collection, shardId).setTermEqualsToLeader(coreNodeName); } - super.runLeaderProcess(weAreReplacement, 0); + super.runLeaderProcess(weAreReplacement); try (SolrCore core = cc.getCore(coreName)) { if (core != null) { core.getCoreDescriptor().getCloudDescriptor().setLeader(true); diff --git a/solr/core/src/java/org/apache/solr/cloud/ShardLeaderElectionContextBase.java b/solr/core/src/java/org/apache/solr/cloud/ShardLeaderElectionContextBase.java index 7f4548b6912..b9173384595 100644 --- a/solr/core/src/java/org/apache/solr/cloud/ShardLeaderElectionContextBase.java +++ b/solr/core/src/java/org/apache/solr/cloud/ShardLeaderElectionContextBase.java @@ -121,8 +121,7 @@ public void cancelElection() throws InterruptedException, KeeperException { } @Override - void runLeaderProcess(boolean weAreReplacement, int pauseBeforeStartMs) - throws KeeperException, InterruptedException { + void runLeaderProcess(boolean weAreReplacement) throws KeeperException, InterruptedException { // register as leader - if an ephemeral is already there, wait to see if it goes away String parent = ZkMaintenanceUtils.getZkParent(leaderPath); diff --git a/solr/core/src/test/org/apache/solr/cloud/LeaderElectionTest.java b/solr/core/src/test/org/apache/solr/cloud/LeaderElectionTest.java index 45e2b3f67c6..7bac68872a1 100644 --- a/solr/core/src/test/org/apache/solr/cloud/LeaderElectionTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/LeaderElectionTest.java @@ -93,9 +93,8 @@ public TestLeaderElectionContext( } @Override - void runLeaderProcess(boolean weAreReplacement, int pauseBeforeStartMs) - throws KeeperException, InterruptedException { - super.runLeaderProcess(weAreReplacement, pauseBeforeStartMs); + void runLeaderProcess(boolean weAreReplacement) throws KeeperException, InterruptedException { + super.runLeaderProcess(weAreReplacement); if (runLeaderDelay > 0) { log.info("Sleeping for {}ms to simulate leadership takeover delay", runLeaderDelay); Thread.sleep(runLeaderDelay);