From 44199a99a5e3806b32aa7f3db7e61d389597c1de Mon Sep 17 00:00:00 2001 From: Houston Putman Date: Wed, 23 Oct 2024 16:58:59 -0500 Subject: [PATCH] Do not use a separate thread to check overseer leadership. We want to be interrupted --- solr/core/src/java/org/apache/solr/cloud/Overseer.java | 2 +- solr/core/src/java/org/apache/solr/cloud/ZkController.java | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/solr/core/src/java/org/apache/solr/cloud/Overseer.java b/solr/core/src/java/org/apache/solr/cloud/Overseer.java index c6b3b79f6c1..643ea7b3b6f 100644 --- a/solr/core/src/java/org/apache/solr/cloud/Overseer.java +++ b/solr/core/src/java/org/apache/solr/cloud/Overseer.java @@ -414,7 +414,7 @@ public void run() { log.info("Overseer Loop exiting : {}", LeaderElector.getNodeName(myId)); } // do this in a separate thread because any wait is interrupted in this main thread - new Thread(this::checkIfIamStillLeader, "OverseerExitThread").start(); + checkIfIamStillLeader(); } } diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkController.java b/solr/core/src/java/org/apache/solr/cloud/ZkController.java index 476d4d03dcc..5c06f822f09 100644 --- a/solr/core/src/java/org/apache/solr/cloud/ZkController.java +++ b/solr/core/src/java/org/apache/solr/cloud/ZkController.java @@ -697,7 +697,9 @@ public void preClose() { this.isClosed = true; try { - this.removeEphemeralLiveNode(); + if (getZkClient().isConnected()) { + this.removeEphemeralLiveNode(); + } } catch (IllegalStateException | SessionExpiredException | KeeperException.ConnectionLossException e) {