This is an automated email from the ASF dual-hosted git repository.
krisden pushed a commit to branch branch_9x
in repository https://gitbox.apache.org/repos/asf/solr.git
The following commit(s) were added to refs/heads/branch_9x by this push:
new 56ee4da70f1 SOLR-17012: Update Apache Hadoop to 3.3.6 and Apache
Curator to 5.5.0 (#1743)
56ee4da70f1 is described below
commit 56ee4da70f145d8bf2e5b889f8e6e6e73c7c149c
Author: Solr Bot <[email protected]>
AuthorDate: Thu Oct 5 01:25:57 2023 +0200
SOLR-17012: Update Apache Hadoop to 3.3.6 and Apache Curator to 5.5.0
(#1743)
Co-authored-by: Kevin Risden <[email protected]>
---
solr/CHANGES.txt | 2 +-
solr/licenses/curator-client-4.3.0.jar.sha1 | 1 -
solr/licenses/curator-client-5.5.0.jar.sha1 | 1 +
solr/licenses/curator-framework-4.3.0.jar.sha1 | 1 -
solr/licenses/curator-framework-5.5.0.jar.sha1 | 1 +
solr/licenses/curator-recipes-4.3.0.jar.sha1 | 1 -
solr/licenses/curator-recipes-5.5.0.jar.sha1 | 1 +
solr/licenses/hadoop-annotations-3.3.5.jar.sha1 | 1 -
solr/licenses/hadoop-annotations-3.3.6.jar.sha1 | 1 +
solr/licenses/hadoop-auth-3.3.5.jar.sha1 | 1 -
solr/licenses/hadoop-auth-3.3.6.jar.sha1 | 1 +
solr/licenses/hadoop-client-api-3.3.5.jar.sha1 | 1 -
solr/licenses/hadoop-client-api-3.3.6.jar.sha1 | 1 +
.../hadoop-client-minicluster-3.3.5.jar.sha1 | 1 -
.../hadoop-client-minicluster-3.3.6.jar.sha1 | 1 +
solr/licenses/hadoop-client-runtime-3.3.5.jar.sha1 | 1 -
solr/licenses/hadoop-client-runtime-3.3.6.jar.sha1 | 1 +
solr/licenses/hadoop-common-3.3.5.jar.sha1 | 1 -
solr/licenses/hadoop-common-3.3.6.jar.sha1 | 1 +
solr/licenses/hadoop-hdfs-3.3.5-tests.jar.sha1 | 1 -
solr/licenses/hadoop-hdfs-3.3.5.jar.sha1 | 1 -
solr/licenses/hadoop-hdfs-3.3.6-tests.jar.sha1 | 1 +
solr/licenses/hadoop-hdfs-3.3.6.jar.sha1 | 1 +
solr/licenses/hadoop-minikdc-3.3.5.jar.sha1 | 1 -
solr/licenses/hadoop-minikdc-3.3.6.jar.sha1 | 1 +
.../hadoop/DelegationTokenKerberosFilter.java | 54 ++++++++++++++++++++--
.../solr/security/hadoop/HadoopAuthFilter.java | 53 ++++++++++++++++++---
.../pages/major-changes-in-solr-9.adoc | 4 ++
versions.lock | 26 +++++------
versions.props | 4 +-
30 files changed, 127 insertions(+), 40 deletions(-)
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index eac88d47296..55b36ff5101 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -24,7 +24,7 @@ Bug Fixes
Dependency Upgrades
---------------------
-(No changes)
+* SOLR-17012: Update Apache Hadoop to 3.3.6 and Apache Curator to 5.5.0 (Kevin
Risden)
Other Changes
---------------------
diff --git a/solr/licenses/curator-client-4.3.0.jar.sha1
b/solr/licenses/curator-client-4.3.0.jar.sha1
deleted file mode 100644
index c8c057968ae..00000000000
--- a/solr/licenses/curator-client-4.3.0.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-3eacfe1f700d66e73b5eb9313af0945042327186
diff --git a/solr/licenses/curator-client-5.5.0.jar.sha1
b/solr/licenses/curator-client-5.5.0.jar.sha1
new file mode 100644
index 00000000000..e9ae641df79
--- /dev/null
+++ b/solr/licenses/curator-client-5.5.0.jar.sha1
@@ -0,0 +1 @@
+db2d83bdc0bac7b4f25fc113d8ce3eedc0a4e89c
diff --git a/solr/licenses/curator-framework-4.3.0.jar.sha1
b/solr/licenses/curator-framework-4.3.0.jar.sha1
deleted file mode 100644
index 9a6a844271d..00000000000
--- a/solr/licenses/curator-framework-4.3.0.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-7a05a339688b5e2f0db4416cb19bc340b68abdc9
diff --git a/solr/licenses/curator-framework-5.5.0.jar.sha1
b/solr/licenses/curator-framework-5.5.0.jar.sha1
new file mode 100644
index 00000000000..c5211cb22d0
--- /dev/null
+++ b/solr/licenses/curator-framework-5.5.0.jar.sha1
@@ -0,0 +1 @@
+b706a216e49352103bd2527e83b1ec2410924494
diff --git a/solr/licenses/curator-recipes-4.3.0.jar.sha1
b/solr/licenses/curator-recipes-4.3.0.jar.sha1
deleted file mode 100644
index dc098a6dd00..00000000000
--- a/solr/licenses/curator-recipes-4.3.0.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-df60350024ccf98bdd9299b3e3c079aab5845d1f
diff --git a/solr/licenses/curator-recipes-5.5.0.jar.sha1
b/solr/licenses/curator-recipes-5.5.0.jar.sha1
new file mode 100644
index 00000000000..e19fcfe836c
--- /dev/null
+++ b/solr/licenses/curator-recipes-5.5.0.jar.sha1
@@ -0,0 +1 @@
+4aa0cfb129c36cd91528fc1b8775705280e60285
diff --git a/solr/licenses/hadoop-annotations-3.3.5.jar.sha1
b/solr/licenses/hadoop-annotations-3.3.5.jar.sha1
deleted file mode 100644
index 04087c5b808..00000000000
--- a/solr/licenses/hadoop-annotations-3.3.5.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-b30e4d5ab2f77f47b6c3917f3286970979c6328a
diff --git a/solr/licenses/hadoop-annotations-3.3.6.jar.sha1
b/solr/licenses/hadoop-annotations-3.3.6.jar.sha1
new file mode 100644
index 00000000000..2829c60fc47
--- /dev/null
+++ b/solr/licenses/hadoop-annotations-3.3.6.jar.sha1
@@ -0,0 +1 @@
+451bc97f7519017cfa96c8f11d79e1e8027968b2
diff --git a/solr/licenses/hadoop-auth-3.3.5.jar.sha1
b/solr/licenses/hadoop-auth-3.3.5.jar.sha1
deleted file mode 100644
index a56612a55fb..00000000000
--- a/solr/licenses/hadoop-auth-3.3.5.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-0aac338d2755e932f87f16cb3e73b42deb9d7699
diff --git a/solr/licenses/hadoop-auth-3.3.6.jar.sha1
b/solr/licenses/hadoop-auth-3.3.6.jar.sha1
new file mode 100644
index 00000000000..00c7261e985
--- /dev/null
+++ b/solr/licenses/hadoop-auth-3.3.6.jar.sha1
@@ -0,0 +1 @@
+066aaf67a580910de62f92f21f76e3df170483cf
diff --git a/solr/licenses/hadoop-client-api-3.3.5.jar.sha1
b/solr/licenses/hadoop-client-api-3.3.5.jar.sha1
deleted file mode 100644
index 6e51b9a630c..00000000000
--- a/solr/licenses/hadoop-client-api-3.3.5.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-caf698048b815044e0c89a42a27c17dc3dee55e3
diff --git a/solr/licenses/hadoop-client-api-3.3.6.jar.sha1
b/solr/licenses/hadoop-client-api-3.3.6.jar.sha1
new file mode 100644
index 00000000000..fa913d85daa
--- /dev/null
+++ b/solr/licenses/hadoop-client-api-3.3.6.jar.sha1
@@ -0,0 +1 @@
+12ac6f103a0ff29fce17a078c7c64d25320b6165
diff --git a/solr/licenses/hadoop-client-minicluster-3.3.5.jar.sha1
b/solr/licenses/hadoop-client-minicluster-3.3.5.jar.sha1
deleted file mode 100644
index a6a5b66254a..00000000000
--- a/solr/licenses/hadoop-client-minicluster-3.3.5.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-521d85134dc4afae1db84120cec5c1144f49a6fd
diff --git a/solr/licenses/hadoop-client-minicluster-3.3.6.jar.sha1
b/solr/licenses/hadoop-client-minicluster-3.3.6.jar.sha1
new file mode 100644
index 00000000000..b6d52bc82d6
--- /dev/null
+++ b/solr/licenses/hadoop-client-minicluster-3.3.6.jar.sha1
@@ -0,0 +1 @@
+1d7be37c806e6703ea672d0e5e47fd43ea721acc
diff --git a/solr/licenses/hadoop-client-runtime-3.3.5.jar.sha1
b/solr/licenses/hadoop-client-runtime-3.3.5.jar.sha1
deleted file mode 100644
index 170a4994686..00000000000
--- a/solr/licenses/hadoop-client-runtime-3.3.5.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-9ddffe0944281ccdcf11b9f94777654bf4cbe00b
diff --git a/solr/licenses/hadoop-client-runtime-3.3.6.jar.sha1
b/solr/licenses/hadoop-client-runtime-3.3.6.jar.sha1
new file mode 100644
index 00000000000..b487aec0964
--- /dev/null
+++ b/solr/licenses/hadoop-client-runtime-3.3.6.jar.sha1
@@ -0,0 +1 @@
+81065531e63fccbe85fb04a3274709593fb00d3c
diff --git a/solr/licenses/hadoop-common-3.3.5.jar.sha1
b/solr/licenses/hadoop-common-3.3.5.jar.sha1
deleted file mode 100644
index cd770cf992e..00000000000
--- a/solr/licenses/hadoop-common-3.3.5.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-915ebfe2334051a0516e39e47348be5704ef4ef4
diff --git a/solr/licenses/hadoop-common-3.3.6.jar.sha1
b/solr/licenses/hadoop-common-3.3.6.jar.sha1
new file mode 100644
index 00000000000..95d105bba1c
--- /dev/null
+++ b/solr/licenses/hadoop-common-3.3.6.jar.sha1
@@ -0,0 +1 @@
+09ca864bec94779e74b99e84ea02dba85a641233
diff --git a/solr/licenses/hadoop-hdfs-3.3.5-tests.jar.sha1
b/solr/licenses/hadoop-hdfs-3.3.5-tests.jar.sha1
deleted file mode 100644
index e9a9148daf6..00000000000
--- a/solr/licenses/hadoop-hdfs-3.3.5-tests.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-80384d0c998af7959da7a8cea0d9e9c259dd5048
diff --git a/solr/licenses/hadoop-hdfs-3.3.5.jar.sha1
b/solr/licenses/hadoop-hdfs-3.3.5.jar.sha1
deleted file mode 100644
index 10405cb8e43..00000000000
--- a/solr/licenses/hadoop-hdfs-3.3.5.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-fe4433c652ff21d393609fd0e37277bce05a4934
diff --git a/solr/licenses/hadoop-hdfs-3.3.6-tests.jar.sha1
b/solr/licenses/hadoop-hdfs-3.3.6-tests.jar.sha1
new file mode 100644
index 00000000000..b464acdd272
--- /dev/null
+++ b/solr/licenses/hadoop-hdfs-3.3.6-tests.jar.sha1
@@ -0,0 +1 @@
+5058b645375c6a68f509e167ad6a6ada9642df09
diff --git a/solr/licenses/hadoop-hdfs-3.3.6.jar.sha1
b/solr/licenses/hadoop-hdfs-3.3.6.jar.sha1
new file mode 100644
index 00000000000..50f78c64c31
--- /dev/null
+++ b/solr/licenses/hadoop-hdfs-3.3.6.jar.sha1
@@ -0,0 +1 @@
+ba40aca60f39599d5b1f1d32b35295bfde1f3c8b
diff --git a/solr/licenses/hadoop-minikdc-3.3.5.jar.sha1
b/solr/licenses/hadoop-minikdc-3.3.5.jar.sha1
deleted file mode 100644
index a9e4dbab451..00000000000
--- a/solr/licenses/hadoop-minikdc-3.3.5.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-a2abae62fef3c36fbdadac89ea396be52e5b2f9b
diff --git a/solr/licenses/hadoop-minikdc-3.3.6.jar.sha1
b/solr/licenses/hadoop-minikdc-3.3.6.jar.sha1
new file mode 100644
index 00000000000..26f53c37c46
--- /dev/null
+++ b/solr/licenses/hadoop-minikdc-3.3.6.jar.sha1
@@ -0,0 +1 @@
+7f454a44beea61f42f37b414c0d73decbe61de32
diff --git
a/solr/modules/hadoop-auth/src/java/org/apache/solr/security/hadoop/DelegationTokenKerberosFilter.java
b/solr/modules/hadoop-auth/src/java/org/apache/solr/security/hadoop/DelegationTokenKerberosFilter.java
index 7844c17a5eb..b0021c889a5 100644
---
a/solr/modules/hadoop-auth/src/java/org/apache/solr/security/hadoop/DelegationTokenKerberosFilter.java
+++
b/solr/modules/hadoop-auth/src/java/org/apache/solr/security/hadoop/DelegationTokenKerberosFilter.java
@@ -16,10 +16,15 @@
*/
package org.apache.solr.security.hadoop;
+import static
org.apache.hadoop.security.token.delegation.ZKDelegationTokenSecretManager.ZK_DTSM_ZNODE_WORKING_PATH;
+import static
org.apache.hadoop.security.token.delegation.ZKDelegationTokenSecretManager.ZK_DTSM_ZNODE_WORKING_PATH_DEAFULT;
+
import java.io.IOException;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
+import java.util.Objects;
+import java.util.concurrent.ExecutorService;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
@@ -41,6 +46,8 @@ import
org.apache.solr.common.cloud.SecurityAwareZkACLProvider;
import org.apache.solr.common.cloud.SolrZkClient;
import org.apache.solr.common.cloud.ZkACLProvider;
import org.apache.solr.common.cloud.ZkCredentialsProvider;
+import org.apache.solr.common.util.ExecutorUtil;
+import org.apache.solr.common.util.SolrNamedThreadFactory;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.data.ACL;
@@ -51,6 +58,7 @@ import org.apache.zookeeper.data.ACL;
* reuse the authentication of an end-user or another application.
*/
public class DelegationTokenKerberosFilter extends
DelegationTokenAuthenticationFilter {
+ private ExecutorService curatorSafeServiceExecutor;
private CuratorFramework curatorFramework;
@Override
@@ -62,7 +70,8 @@ public class DelegationTokenKerberosFilter extends
DelegationTokenAuthentication
try {
conf.getServletContext()
.setAttribute(
- "signer.secret.provider.zookeeper.curator.client",
getCuratorClient(zkClient));
+ "signer.secret.provider.zookeeper.curator.client",
+ getCuratorClientInternal(conf, zkClient));
} catch (InterruptedException | KeeperException e) {
throw new ServletException(e);
}
@@ -123,8 +132,14 @@ public class DelegationTokenKerberosFilter extends
DelegationTokenAuthentication
@Override
public void destroy() {
super.destroy();
- if (curatorFramework != null) curatorFramework.close();
- curatorFramework = null;
+ if (curatorFramework != null) {
+ curatorFramework.close();
+ curatorFramework = null;
+ }
+ if (curatorSafeServiceExecutor != null) {
+ ExecutorUtil.shutdownNowAndAwaitTermination(curatorSafeServiceExecutor);
+ curatorSafeServiceExecutor = null;
+ }
}
@Override
@@ -141,6 +156,31 @@ public class DelegationTokenKerberosFilter extends
DelegationTokenAuthentication
newAuthHandler.setAuthHandler(authHandler);
}
+ private CuratorFramework getCuratorClientInternal(FilterConfig conf,
SolrZkClient zkClient)
+ throws KeeperException, InterruptedException {
+ // There is a race condition where the znodeWorking path used by
ZKDelegationTokenSecretManager
+ // can be created by multiple nodes, but Hadoop doesn't handle this well.
This explicitly
+ // creates it up front and handles if the znode already exists. This
relates to HADOOP-18452
+ // but didn't solve the underlying issue of the race condition.
+
+ // If namespace parents are implicitly created, they won't have ACLs.
+ // So, let's explicitly create them.
+ CuratorFramework curatorFramework = getCuratorClient(zkClient);
+ CuratorFramework nullNsFw = curatorFramework.usingNamespace(null);
+ try {
+ String znodeWorkingPath =
+ '/'
+ + Objects.requireNonNullElse(
+ conf.getInitParameter(ZK_DTSM_ZNODE_WORKING_PATH),
+ ZK_DTSM_ZNODE_WORKING_PATH_DEAFULT)
+ + "/ZKDTSMRoot";
+
nullNsFw.create().creatingParentContainersIfNeeded().forPath(znodeWorkingPath);
+ } catch (Exception ignore) {
+ }
+
+ return curatorFramework;
+ }
+
protected CuratorFramework getCuratorClient(SolrZkClient zkClient)
throws InterruptedException, KeeperException {
// should we try to build a RetryPolicy off of the ZkController?
@@ -163,10 +203,12 @@ public class DelegationTokenKerberosFilter extends
DelegationTokenAuthentication
try {
zkClient.makePath(
SecurityAwareZkACLProvider.SECURITY_ZNODE_PATH,
CreateMode.PERSISTENT, true);
- } catch (KeeperException.NodeExistsException ex) {
- // ignore?
+ } catch (KeeperException.NodeExistsException ignore) {
}
+ curatorSafeServiceExecutor =
+ ExecutorUtil.newMDCAwareSingleThreadExecutor(
+ new
SolrNamedThreadFactory("delegationtokenkerberosfilter-curator-safeService"));
curatorFramework =
CuratorFrameworkFactory.builder()
.namespace(zkNamespace)
@@ -176,8 +218,10 @@ public class DelegationTokenKerberosFilter extends
DelegationTokenAuthentication
.authorization(curatorToSolrZk.getAuthInfos())
.sessionTimeoutMs(zkClient.getZkClientTimeout())
.connectionTimeoutMs(connectionTimeoutMs)
+ .runSafeService(curatorSafeServiceExecutor)
.build();
curatorFramework.start();
+
return curatorFramework;
}
diff --git
a/solr/modules/hadoop-auth/src/java/org/apache/solr/security/hadoop/HadoopAuthFilter.java
b/solr/modules/hadoop-auth/src/java/org/apache/solr/security/hadoop/HadoopAuthFilter.java
index 2c478821668..f462ad7e682 100644
---
a/solr/modules/hadoop-auth/src/java/org/apache/solr/security/hadoop/HadoopAuthFilter.java
+++
b/solr/modules/hadoop-auth/src/java/org/apache/solr/security/hadoop/HadoopAuthFilter.java
@@ -16,9 +16,14 @@
*/
package org.apache.solr.security.hadoop;
+import static
org.apache.hadoop.security.token.delegation.ZKDelegationTokenSecretManager.ZK_DTSM_ZNODE_WORKING_PATH;
+import static
org.apache.hadoop.security.token.delegation.ZKDelegationTokenSecretManager.ZK_DTSM_ZNODE_WORKING_PATH_DEAFULT;
+
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
+import java.util.concurrent.ExecutorService;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
@@ -39,6 +44,8 @@ import
org.apache.solr.common.cloud.SecurityAwareZkACLProvider;
import org.apache.solr.common.cloud.SolrZkClient;
import org.apache.solr.common.cloud.ZkACLProvider;
import org.apache.solr.common.cloud.ZkCredentialsProvider;
+import org.apache.solr.common.util.ExecutorUtil;
+import org.apache.solr.common.util.SolrNamedThreadFactory;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.data.ACL;
@@ -53,6 +60,7 @@ public class HadoopAuthFilter extends
DelegationTokenAuthenticationFilter {
*/
static final String DELEGATION_TOKEN_ZK_CLIENT =
"solr.kerberos.delegation.token.zk.client";
+ private ExecutorService curatorSafeServiceExecutor;
private CuratorFramework curatorFramework;
@Override
@@ -63,7 +71,8 @@ public class HadoopAuthFilter extends
DelegationTokenAuthenticationFilter {
try {
conf.getServletContext()
.setAttribute(
- "signer.secret.provider.zookeeper.curator.client",
getCuratorClient(zkClient));
+ "signer.secret.provider.zookeeper.curator.client",
+ getCuratorClientInternal(conf, zkClient));
} catch (KeeperException | InterruptedException e) {
throw new ServletException(e);
}
@@ -104,8 +113,12 @@ public class HadoopAuthFilter extends
DelegationTokenAuthenticationFilter {
super.destroy();
if (curatorFramework != null) {
curatorFramework.close();
+ curatorFramework = null;
+ }
+ if (curatorSafeServiceExecutor != null) {
+ ExecutorUtil.shutdownNowAndAwaitTermination(curatorSafeServiceExecutor);
+ curatorSafeServiceExecutor = null;
}
- curatorFramework = null;
}
@Override
@@ -122,6 +135,31 @@ public class HadoopAuthFilter extends
DelegationTokenAuthenticationFilter {
newAuthHandler.setAuthHandler(authHandler);
}
+ private CuratorFramework getCuratorClientInternal(FilterConfig conf,
SolrZkClient zkClient)
+ throws KeeperException, InterruptedException {
+ // There is a race condition where the znodeWorking path used by
ZKDelegationTokenSecretManager
+ // can be created by multiple nodes, but Hadoop doesn't handle this well.
This explicitly
+ // creates it up front and handles if the znode already exists. This
relates to HADOOP-18452
+ // but didn't solve the underlying issue of the race condition.
+
+ // If namespace parents are implicitly created, they won't have ACLs.
+ // So, let's explicitly create them.
+ CuratorFramework curatorFramework = getCuratorClient(zkClient);
+ CuratorFramework nullNsFw = curatorFramework.usingNamespace(null);
+ try {
+ String znodeWorkingPath =
+ '/'
+ + Objects.requireNonNullElse(
+ conf.getInitParameter(ZK_DTSM_ZNODE_WORKING_PATH),
+ ZK_DTSM_ZNODE_WORKING_PATH_DEAFULT)
+ + "/ZKDTSMRoot";
+
nullNsFw.create().creatingParentContainersIfNeeded().forPath(znodeWorkingPath);
+ } catch (Exception ignore) {
+ }
+
+ return curatorFramework;
+ }
+
protected CuratorFramework getCuratorClient(SolrZkClient zkClient)
throws KeeperException, InterruptedException {
// should we try to build a RetryPolicy off of the ZkController?
@@ -144,13 +182,12 @@ public class HadoopAuthFilter extends
DelegationTokenAuthenticationFilter {
try {
zkClient.makePath(
SecurityAwareZkACLProvider.SECURITY_ZNODE_PATH,
CreateMode.PERSISTENT, true);
-
- } catch (KeeperException ex) {
- if (ex.code() != KeeperException.Code.NODEEXISTS) {
- throw ex;
- }
+ } catch (KeeperException.NodeExistsException ignore) {
}
+ curatorSafeServiceExecutor =
+ ExecutorUtil.newMDCAwareSingleThreadExecutor(
+ new
SolrNamedThreadFactory("hadoopauthfilter-curator-safeService"));
curatorFramework =
CuratorFrameworkFactory.builder()
.namespace(zkNamespace)
@@ -160,8 +197,10 @@ public class HadoopAuthFilter extends
DelegationTokenAuthenticationFilter {
.authorization(curatorToSolrZk.getAuthInfos())
.sessionTimeoutMs(zkClient.getZkClientTimeout())
.connectionTimeoutMs(connectionTimeoutMs)
+ .runSafeService(curatorSafeServiceExecutor)
.build();
curatorFramework.start();
+
return curatorFramework;
}
diff --git
a/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-9.adoc
b/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-9.adoc
index f686ff1f549..74fa649174d 100644
---
a/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-9.adoc
+++
b/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-9.adoc
@@ -64,6 +64,10 @@ It is always strongly recommended that you fully reindex
your documents after a
In Solr 8, it was possible to add docValues to a schema without re-indexing
via `UninvertDocValuesMergePolicy`, an advanced/expert utility.
Due to changes in Lucene 9, that isn't possible any more.
+== Solr 9.5
+=== Curator upgraded to 5.5.0 and requires Zookeeper 3.5.x or higher
+xref:upgrade-notes:major-changes-in-solr-9.html#solr-8-2[Solr 8.2 recommended
using Zookeeper 3.5.5] and now with Curator 5.5.0 requires
https://curator.apache.org/docs/breaking-changes/[Zookeeper 3.5.x or higher].
This primarily affects users of `hadoop-auth`, but usage of Curator could
affect other parts of Solr.
+
== Solr 9.4
=== The Built-In Config Sets
* The build in ConfigSets (`_default` and `sample_techproducts_configs`), now
use a default `autoSoftCommit` time of 3 seconds,
diff --git a/versions.lock b/versions.lock
index 198c5166c11..240a62d3344 100644
--- a/versions.lock
+++ b/versions.lock
@@ -44,7 +44,7 @@ com.google.cloud:google-cloud-storage:2.27.0 (2 constraints:
d71c8a27)
com.google.code.gson:gson:2.10.1 (8 constraints: 7c6bf476)
com.google.errorprone:error_prone_annotations:2.22.0 (11 constraints: 6e891f5a)
com.google.guava:failureaccess:1.0.1 (2 constraints: f9199e37)
-com.google.guava:guava:32.1.2-jre (26 constraints: a37b7b56)
+com.google.guava:guava:32.1.2-jre (26 constraints: 407b586c)
com.google.guava:guava-parent:32.1.2-jre (1 constraints: b80ba5eb)
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava (2
constraints: 4b35b0a0)
com.google.http-client:google-http-client:1.43.3 (11 constraints: 3fbf96b4)
@@ -183,14 +183,14 @@ org.apache.commons:commons-exec:1.3 (2 constraints:
a41056b8)
org.apache.commons:commons-lang3:3.13.0 (5 constraints: 9c3eb936)
org.apache.commons:commons-math3:3.6.1 (5 constraints: 57322799)
org.apache.commons:commons-text:1.10.0 (1 constraints: d911adf8)
-org.apache.curator:curator-client:4.3.0 (2 constraints: e214cba2)
-org.apache.curator:curator-framework:4.3.0 (2 constraints: ff13b474)
-org.apache.curator:curator-recipes:4.3.0 (1 constraints: 09050836)
-org.apache.hadoop:hadoop-annotations:3.3.5 (1 constraints: 0d050836)
-org.apache.hadoop:hadoop-auth:3.3.5 (1 constraints: 0d050836)
-org.apache.hadoop:hadoop-client-api:3.3.5 (3 constraints: 22287160)
-org.apache.hadoop:hadoop-client-runtime:3.3.5 (2 constraints: 6d17a643)
-org.apache.hadoop:hadoop-common:3.3.5 (1 constraints: 0d050836)
+org.apache.curator:curator-client:5.5.0 (2 constraints: e81468a3)
+org.apache.curator:curator-framework:5.5.0 (2 constraints: 05144b75)
+org.apache.curator:curator-recipes:5.5.0 (1 constraints: 0c051336)
+org.apache.hadoop:hadoop-annotations:3.3.6 (1 constraints: 0e050936)
+org.apache.hadoop:hadoop-auth:3.3.6 (1 constraints: 0e050936)
+org.apache.hadoop:hadoop-client-api:3.3.6 (3 constraints: 25280861)
+org.apache.hadoop:hadoop-client-runtime:3.3.6 (2 constraints: 6f17dc43)
+org.apache.hadoop:hadoop-common:3.3.6 (1 constraints: 0e050936)
org.apache.hadoop.thirdparty:hadoop-shaded-guava:1.1.1 (1 constraints:
0505f435)
org.apache.httpcomponents:httpclient:4.5.14 (9 constraints: 62806342)
org.apache.httpcomponents:httpcore:4.4.16 (8 constraints: 256d4617)
@@ -263,7 +263,7 @@ org.apache.tika:tika-core:1.28.5 (2 constraints: d8118f11)
org.apache.tika:tika-parsers:1.28.5 (1 constraints: 42054a3b)
org.apache.tomcat:annotations-api:6.0.53 (1 constraints: 40054e3b)
org.apache.xmlbeans:xmlbeans:5.0.3 (2 constraints: 72173075)
-org.apache.zookeeper:zookeeper:3.9.0 (2 constraints: a0134e5f)
+org.apache.zookeeper:zookeeper:3.9.0 (2 constraints: 9c134e5f)
org.apache.zookeeper:zookeeper-jute:3.9.0 (2 constraints: 99125f23)
org.apiguardian:apiguardian-api:1.1.2 (2 constraints: 601bd5a8)
org.bitbucket.b_c:jose4j:0.9.3 (1 constraints: 0e050936)
@@ -417,9 +417,9 @@ net.bytebuddy:byte-buddy:1.14.6 (1 constraints: 460b44de)
net.minidev:accessors-smart:2.4.9 (1 constraints: 500a92b8)
net.minidev:json-smart:2.4.10 (1 constraints: 400e9a7c)
no.nav.security:mock-oauth2-server:0.5.10 (1 constraints: 3805333b)
-org.apache.hadoop:hadoop-client-minicluster:3.3.5 (1 constraints: 0d050836)
-org.apache.hadoop:hadoop-hdfs:3.3.5 (1 constraints: 0d050836)
-org.apache.hadoop:hadoop-minikdc:3.3.5 (1 constraints: 0d050836)
+org.apache.hadoop:hadoop-client-minicluster:3.3.6 (1 constraints: 0e050936)
+org.apache.hadoop:hadoop-hdfs:3.3.6 (1 constraints: 0e050936)
+org.apache.hadoop:hadoop-minikdc:3.3.6 (1 constraints: 0e050936)
org.apache.kerby:kerb-admin:1.0.1 (1 constraints: 840d892f)
org.apache.kerby:kerb-client:1.0.1 (1 constraints: 840d892f)
org.apache.kerby:kerb-common:1.0.1 (2 constraints: a51841ca)
diff --git a/versions.props b/versions.props
index 69338f40232..22e85db7c86 100644
--- a/versions.props
+++ b/versions.props
@@ -41,9 +41,9 @@ org.apache.commons:commons-configuration2=2.9.0
org.apache.commons:commons-exec=1.3
org.apache.commons:commons-lang3=3.13.0
org.apache.commons:commons-math3=3.6.1
-org.apache.curator:*=4.3.0
+org.apache.curator:*=5.5.0
org.apache.hadoop.thirdparty:*=1.1.1
-org.apache.hadoop:*=3.3.5
+org.apache.hadoop:*=3.3.6
org.apache.httpcomponents:httpclient=4.5.14
org.apache.httpcomponents:httpcore=4.4.16
org.apache.httpcomponents:httpmime=4.5.14