This is an automated email from the ASF dual-hosted git repository. mlbiscoc pushed a commit to branch feature/SOLR-17458-rebased in repository https://gitbox.apache.org/repos/asf/solr.git
commit ebe843be934f63363484af3d6755578c3eb8304d Author: Matthew Biscocho <[email protected]> AuthorDate: Mon Sep 8 11:04:40 2025 -0400 Fix test failure on AbstractBasicDistributedZkTestBase (#3620) Co-authored-by: Matthew Biscocho <[email protected]> --- .../cloud/AbstractBasicDistributedZkTestBase.java | 40 ++++++++++++++-------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractBasicDistributedZkTestBase.java b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractBasicDistributedZkTestBase.java index 74a02b44988..c87715d3445 100644 --- a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractBasicDistributedZkTestBase.java +++ b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractBasicDistributedZkTestBase.java @@ -17,7 +17,9 @@ package org.apache.solr.cloud; import java.io.IOException; +import java.io.InputStream; import java.lang.invoke.MethodHandles; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -42,9 +44,9 @@ import org.apache.solr.JSONTestUtil; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrRequest; -import org.apache.solr.client.solrj.SolrRequest.SolrRequestType; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.HttpSolrClient; +import org.apache.solr.client.solrj.impl.InputStreamResponseParser; import org.apache.solr.client.solrj.request.AbstractUpdateRequest; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.CoreAdminRequest.Create; @@ -73,6 +75,7 @@ import org.apache.solr.common.cloud.ZkStateReader; import org.apache.solr.common.params.CollectionParams.CollectionAction; import org.apache.solr.common.params.CommonParams; import org.apache.solr.common.params.ModifiableSolrParams; +import org.apache.solr.common.params.SolrParams; import org.apache.solr.common.params.UpdateParams; import org.apache.solr.common.util.ExecutorUtil; import org.apache.solr.common.util.NamedList; @@ -1271,7 +1274,6 @@ public abstract class AbstractBasicDistributedZkTestBase extends AbstractFullDis .setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true)); long endCommits = getNumCommits((HttpSolrClient) clients.get(0)); - assertEquals(startCommits + 1L, endCommits); } @@ -1282,22 +1284,30 @@ public abstract class AbstractBasicDistributedZkTestBase extends AbstractFullDis .withConnectionTimeout(15000, TimeUnit.MILLISECONDS) .withSocketTimeout(60000, TimeUnit.MILLISECONDS) .build()) { - ModifiableSolrParams params = new ModifiableSolrParams(); - // params.set("qt", "/admin/metrics?prefix=UPDATE.updateHandler®istry=solr.core." + - // collection); - params.set("prefix", "UPDATE.updateHandler"); - params.set("registry", "solr.core." + collection); - // use generic request to avoid extra processing of queries var req = new GenericSolrRequest( - SolrRequest.METHOD.GET, "/admin/metrics", SolrRequestType.ADMIN, params); + SolrRequest.METHOD.GET, + "/admin/metrics", + SolrRequest.SolrRequestType.ADMIN, + SolrParams.of("wt", "prometheus")); + req.setResponseParser(new InputStreamResponseParser("prometheus")); + NamedList<Object> resp = client.request(req); - NamedList<?> metrics = (NamedList<?>) resp.get("metrics"); - NamedList<?> uhandlerCat = (NamedList<?>) metrics.getVal(0); - @SuppressWarnings({"unchecked"}) - Map<String, Object> commits = - (Map<String, Object>) uhandlerCat.get("UPDATE.updateHandler.commits"); - return (Long) commits.get("count"); + try (InputStream in = (InputStream) resp.get("stream")) { + String output = new String(in.readAllBytes(), StandardCharsets.UTF_8); + String metricName = "solr_core_update_commit_ops"; + + return (long) + output + .lines() + .filter( + l -> + l.startsWith(metricName) + && l.contains("collection=\"" + collection + "\"") + && l.contains("ops=\"commits\"")) + .mapToDouble(s -> Double.parseDouble(s.substring(s.lastIndexOf(" ")))) + .sum(); + } } }
