So it looks like this could be an easy fix, regardless of whether
Standalone should support the shardHandlerFactory being included.
If you make a JIRA, I'll submit a PR.

As for the CI tests/production clusters comment, I would recommend using
the embedded zookeeper and make a single node Solr Cloud for your CI.
Best to keep everything as similar as possible.

- Houston

On Fri, Oct 14, 2022 at 4:48 AM Nick Vladiceanu <[email protected]>
wrote:

> hello folks,
> we’re in process of upgrading our Solr from 8.11 to 9.0. While upgrading
> the image for CI tests (meaning solr runs in standalone mode), we’ve
> spotted that Solr fails to create cores with a “NullPointerException" error
> when “shardHandlerFactory” is defined for any handlers in the
> solrconfig.xml file.
>
> Snippet from solrconfig.xml:
>
> <requestHandler name="/select" class="solr.SearchHandler" default="true”>
> …..
>         <shardHandlerFactory name="shardHandlerFactory"
> class="HttpShardHandlerFactory">
>             <int name="socketTimeout">${socketTimeout:800}</int>
>             <int name="connTimeout">${connTimeout:500}</int>
>         </shardHandlerFactory>
> </requestHandler>
>
> Snippet of NullPointerException (full text here:
> https://justpaste.it/5lntq <https://justpaste.it/5lntq> ):
>
> olxeu-atlas-web-dist-solr-1  | Caused by: java.lang.NullPointerException
> olxeu-atlas-web-dist-solr-1  |  at
> org.apache.solr.handler.component.HttpShardHandlerFactory.setSecurityBuilder(HttpShardHandlerFactory.java:299)
> ~[?:?]
> olxeu-atlas-web-dist-solr-1  |  at
> org.apache.solr.handler.component.SearchHandler.inform(SearchHandler.java:185)
> ~[?:?]
> olxeu-atlas-web-dist-solr-1  |  at
> org.apache.solr.core.SolrResourceLoader.inform(SolrResourceLoader.java:722)
> ~[?:?]
> olxeu-atlas-web-dist-solr-1  |  at
> org.apache.solr.core.SolrCore.<init>(SolrCore.java:1155) ~[?:?]
> olxeu-atlas-web-dist-solr-1  |  at
> org.apache.solr.core.SolrCore.<init>(SolrCore.java:1048) ~[?:?]
> olxeu-atlas-web-dist-solr-1  |  at
> org.apache.solr.core.CoreContainer.createFromDescriptor(CoreContainer.java:1560)
> ~[?:?]
> olxeu-atlas-web-dist-solr-1  |  at
> org.apache.solr.core.CoreContainer.lambda$load$10(CoreContainer.java:950)
> ~[?:?]
> olxeu-atlas-web-dist-solr-1  |  at
> com.codahale.metrics.InstrumentedExecutorService$InstrumentedCallable.call(InstrumentedExecutorService.java:202)
> ~[metrics-core-4.1.5.jar:4.1.5]
>
> Steps:
> 1. Run library/solr:9.0.0 in docker (default config, no tunings); mount a
> volume with solrconfig.xml that contains shardHandlerFactory and schema.xml;
> 2. Create a core using the solrconfig.xml:
> http://localhost:8983/solr/admin/cores?action=CREATE&name=test&instanceDir=/var/solr/data/test&config=solrconfig.xml&dataDir=data/
> <
> http://localhost:8983/solr/admin/cores?action=CREATE&name=test&instanceDir=/var/solr/data/test&config=solrconfig.xml&dataDir=data/
> >
> 3. Failure with nullPointerException;
> 4. Remove the shardHandlerFactory block;
> 5. Repeat step 2;
> 6. Success.
>
> Works fine when running Solr in SolrCloud mode.
>
> It’s understandable that shardHandlerFactory might not have any effect
> when running Solr in Standalone mode, since there is not inter-nodes
> requests routing, however, there are scenarios when we need to test and
> apply exactly the same solrconfig.xml in Standalone mode (i.e. during CI
> tests) and in Cloud mode (i.e. production clusters). What should be the
> expected behaviour, ignoring irrelevant configuration as it used to be in
> previous version of Solr?
>
> Did anyone else face this issue? What would be the approach to solve it?
> Perhaps, there is a bug reported already? Thanks
>
> Best regards,
> Nick Vladiceanu

Reply via email to