Skip to content

Update to Solr 10#1

Draft
epugh wants to merge 8 commits intoquerqy:mainfrom
epugh:copilot/update-querqy-lucene-solr-10
Draft

Update to Solr 10#1
epugh wants to merge 8 commits intoquerqy:mainfrom
epugh:copilot/update-querqy-lucene-solr-10

Conversation

@epugh
Copy link
Copy Markdown

@epugh epugh commented Mar 21, 2026

This is very much a WIP, with lots of copilot and Claude help.

Right now this is the current test results: Tests run: 349, Failures: 1, Errors: 17, Skipped: 1.

Some things to note:

Solr 10 introduced several breaking changes that affected querqy-solr:

  • Missing Lucene module dependencies due to incomplete POM declarations
  • HTTP method API changed from String to enum
  • Metrics API changed from Dropwizard to OpenTelemetry
  • Solr 10 solrj pom.xml is also horked up...

Solr 10.0 has a broken solr-test-framework.jar, the ExternalPaths.java class raises an NPE instead of a null. I have a thread open on dev@ mailing list and a potential fix.

I suspect to move forward we'll need to wait till 10.1 comes ;-(.

Copilot AI and others added 7 commits March 21, 2026 14:32
…ctQuerqySolrCloudTestCase

Co-authored-by: epugh <22395+epugh@users.noreply.github.com>
Agent-Logs-Url: https://github.com/epugh/querqy-solr/sessions/eef48999-e12c-4944-a7d2-0428268ce51d
We have an issue with Solr 10's test framework and ExternalPaths, which may mean we have to wait for Solr 10.1 to get our tests here working.  I tested against a local patched that we called solr 11, and that shows up in the pom.xml.
Copy link
Copy Markdown
Author

@epugh epugh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First self-review of this PR. So much work to do...

"name", this.rewriterConfigIndexName));

try (final LocalSolrQueryRequest solrUpdateRequest = new LocalSolrQueryRequest(configurationCore, requestParams)) {
try (final SolrQueryRequestBase solrUpdateRequest = new SolrQueryRequestBase(configurationCore, requestParams) {}) {
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder why we didn't create a non abstract version of SolrQueryRequestBase when we did this so we didn't have the {} anonymous class thing?

assert null != client.getDefaultCollection();
AbstractDistribZkTestBase.waitForRecoveriesToFinish(client.getDefaultCollection(), cluster.getZkStateReader(),
true, true, 330);
AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not sure why true,true in solr 9, and false,true in solr 10..

* - Solr 10.0: Would fail with NPE during class loading
* - Solr 10.1+: Should handle null SOURCE_HOME gracefully
*/
public class ExternalPathsCompatibilityTest {
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

too verbose AI generated, and do we need all of this?

import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.apache.HttpSolrClient;
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should move to jetty. Not apache.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This class appears to have been mostly not run as part of the tests... So maybe back it out?

@@ -0,0 +1 @@
// placeholder for ExternalPaths.determineSourceHome()
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

umm.. do we need this?

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>11</java.version>
<java.version>21</java.version>
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

solr minimum version on the server side, i think client is still 17.

<log4j.version>2.21.1</log4j.version>
<slf4j.version>2.0.13</slf4j.version>
<solr.version>9.8.0</solr.version>
<solr.version>11.0.0-SNAPSHOT</solr.version>
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this should be 10.0, but I amde my own patched version to teal with solr-test-framework issues.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

way too long due to horked up poms from solr 10.0 ;-(

@epugh
Copy link
Copy Markdown
Author

epugh commented Mar 21, 2026

@renekrie was hoping to have this done done before you got home as a "welcome back" gift, but didn't quite get there.

@epugh
Copy link
Copy Markdown
Author

epugh commented Mar 23, 2026

Turns out apache/solr#4225 was already open....

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants