[ 
https://issues.apache.org/jira/browse/SOLR-17939?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18024308#comment-18024308
 ] 

Jason Gerlowski commented on SOLR-17939:
----------------------------------------

I initially marked this issue as affecting 9.9 and 9.8.1, but in hindsight 
that's incorrect.  It looks like this was a "main-only" bug that we never 
shipped in a release.

I've fixed it on main, so closing this ticket out accordingly.

> ZkController should not ignore created ZkCredentialProvider, 
> ZkCredentialInjector
> ---------------------------------------------------------------------------------
>
>                 Key: SOLR-17939
>                 URL: https://issues.apache.org/jira/browse/SOLR-17939
>             Project: Solr
>          Issue Type: Improvement
>    Affects Versions: main (10.0)
>            Reporter: Jason Gerlowski
>            Priority: Minor
>              Labels: pull-request-available
>          Time Spent: 1h
>  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]

Reply via email to