You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@solr.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2025/09/30 19:59:00 UTC
[jira] [Updated] (SOLR-17939) ZkController creates then ignores ZkCredentialProvider, ZkCredentialInjector
[ https://issues.apache.org/jira/browse/SOLR-17939?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
ASF GitHub Bot updated SOLR-17939:
----------------------------------
Labels: pull-request-available (was: )
> ZkController creates then ignores ZkCredentialProvider, ZkCredentialInjector
> ----------------------------------------------------------------------------
>
> Key: SOLR-17939
> URL: https://issues.apache.org/jira/browse/SOLR-17939
> Project: Solr
> Issue Type: Improvement
> Affects Versions: main (10.0), 9.9, 9.8.1
> Reporter: Jason Gerlowski
> Priority: Minor
> Labels: pull-request-available
> Time Spent: 10m
> Remaining Estimate: 0h
>
> On startup Solr creates a ZkController, which in turn creates a "SolrZkClient".
> In preparation to create the SolrZkClient we create ZkAclProvider, ZkCredentialsProvider, and ZkCredentialsInjector instances. But only one of those (the ZkAclProvider) is actually given to SolrZkClient!
> The impact here is relatively low for most users, since SolrZkClient has fallback code for instantiating whatever providers and injectors it's missing.
> But it *can* cause problems in some circumstances: particularly around classloading. Plugin instantiation done by ZkController will use the full Solr classpath, but SolrZkClient gets the default JVM classpath. So users attempting to load custom ZkCredentialsProvider implementations from jars located in (e.g.) {{$SOLR_TIP/lib}} will get NoClassDefFound errors:
> {code}
> 2025-09-30 14:40:03.244 INFO (main) [c: s: r: x: t:] o.a.s.c.c.SolrZkClient Using ZkCredentialsProvider: org.example.LoggingZkCredentialsProvider
> 2025-09-30 14:40:03.244 WARN (main) [c: s: r: x: t:] o.a.s.c.c.SolrZkClient VM param zkCredentialsProvider does not point to a class implementing ZkCredentialsProvider and with a non-arg constructor => java.lang.ClassNotFoundException: org.example.LoggingZkCredentialsProvider
> at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
> java.lang.ClassNotFoundException: org.example.LoggingZkCredentialsProvider
> at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445) ~[?:?]
> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593) ~[?:?]
> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ~[?:?]
> at org.eclipse.jetty.ee10.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:443) ~[jetty-ee10-webapp-12.0.19.jar:12.0.19]
> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ~[?:?]
> at java.base/java.lang.Class.forName0(Native Method) ~[?:?]
> at java.base/java.lang.Class.forName(Class.java:421) ~[?:?]
> at java.base/java.lang.Class.forName(Class.java:412) ~[?:?]
> at org.apache.solr.common.cloud.SolrZkClient.createZkCredentialsToAddAutomatically(SolrZkClient.java:234) ~[?:?]
> at org.apache.solr.common.cloud.SolrZkClient.<init>(SolrZkClient.java:162) ~[?:?]
> at org.apache.solr.common.cloud.SolrZkClient.<init>(SolrZkClient.java:110) ~[?:?]
> at org.apache.solr.common.cloud.SolrZkClient$Builder.build(SolrZkClient.java:1214) ~[?:?]
> at org.apache.solr.cloud.ZkController.<init>(ZkController.java:354) ~[?:?]
> at org.apache.solr.core.ZkContainer.initZooKeeper(ZkContainer.java:131) ~[?:?]
> at org.apache.solr.core.CoreContainer.loadInternal(CoreContainer.java:800) ~[?:?]
> at org.apache.solr.core.CoreContainer.load(CoreContainer.java:735) ~[?:?]
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@solr.apache.org
For additional commands, e-mail: issues-help@solr.apache.org