[
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: [email protected]
For additional commands, e-mail: [email protected]