[ 
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]

Reply via email to