This is an automated email from the ASF dual-hosted git repository.
jdyer pushed a commit to branch branch_9x
in repository https://gitbox.apache.org/repos/asf/solr.git
The following commit(s) were added to refs/heads/branch_9x by this push:
new 6f51f5cab2c SOLR-17945: fix flaky test
CloudHttp2SolrClientTest#testHttpCspPerf (#3742)
6f51f5cab2c is described below
commit 6f51f5cab2cdc655e10be106a2386d81653fd7a3
Author: James Dyer <[email protected]>
AuthorDate: Fri Oct 10 10:07:57 2025 -0500
SOLR-17945: fix flaky test CloudHttp2SolrClientTest#testHttpCspPerf (#3742)
---
.../solr/client/solrj/impl/BaseHttpClusterStateProvider.java | 4 +++-
.../apache/solr/client/solrj/impl/CloudHttp2SolrClientTest.java | 9 +++++++++
.../apache/solr/client/solrj/impl/ClusterStateProviderTest.java | 3 ++-
3 files changed, 14 insertions(+), 2 deletions(-)
diff --git
a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/BaseHttpClusterStateProvider.java
b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/BaseHttpClusterStateProvider.java
index 3f8310c85b7..a7d6543c9b9 100644
---
a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/BaseHttpClusterStateProvider.java
+++
b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/BaseHttpClusterStateProvider.java
@@ -56,6 +56,8 @@ import org.slf4j.LoggerFactory;
public abstract class BaseHttpClusterStateProvider implements
ClusterStateProvider {
private static final Logger log =
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+ protected static final String SYS_PROP_CACHE_TIMEOUT_SECONDS =
"solr.solrj.cache.timeout.sec";
+
private String urlScheme;
private List<URL> configuredNodes;
volatile Set<String> liveNodes; // initially null then never null
@@ -65,7 +67,7 @@ public abstract class BaseHttpClusterStateProvider implements
ClusterStateProvid
long aliasesTimestamp = 0;
// the liveNodes and aliases cache will be invalidated after 5 secs
- private int cacheTimeout =
EnvUtils.getPropertyAsInteger("solr.solrj.cache.timeout.sec", 5);
+ private int cacheTimeout =
EnvUtils.getPropertyAsInteger(SYS_PROP_CACHE_TIMEOUT_SECONDS, 5);
volatile boolean liveNodeReloadingScheduled = false;
private final ScheduledExecutorService liveNodeReloadingService =
diff --git
a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientTest.java
b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientTest.java
index 5aa2e751cc2..dc09842be89 100644
---
a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientTest.java
+++
b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientTest.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.client.solrj.impl;
+import static
org.apache.solr.client.solrj.impl.BaseHttpClusterStateProvider.SYS_PROP_CACHE_TIMEOUT_SECONDS;
import static org.apache.solr.client.solrj.impl.CloudSolrClient.RouteResponse;
import java.io.IOException;
@@ -253,6 +254,14 @@ public class CloudHttp2SolrClientTest extends
SolrCloudTestCase {
@Test
@LogLevel("org.apache.solr.servlet.HttpSolrCall=DEBUG")
public void testHttpCspPerf() throws Exception {
+ // This ensures CH2SC is caching cluster status by counting the number of
logged calls to the
+ // admin endpoint. Too many calls to CLUSTERSTATUS might mean insufficient
caching and
+ // performance regressions!
+
+ // BaseHttpClusterStateProvider has a background job that pre-fetches data
from CLUSTERSTATUS
+ // on timed intervals. This can pollute this test, so we set the interval
very high to
+ // prevent it from running.
+ System.setProperty(SYS_PROP_CACHE_TIMEOUT_SECONDS, "" + Integer.MAX_VALUE);
String collectionName = "HTTPCSPTEST";
CollectionAdminRequest.createCollection(collectionName, "conf", 2, 1)
diff --git
a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ClusterStateProviderTest.java
b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ClusterStateProviderTest.java
index 0650da8cafa..488d816767d 100644
---
a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ClusterStateProviderTest.java
+++
b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ClusterStateProviderTest.java
@@ -17,6 +17,7 @@
package org.apache.solr.client.solrj.impl;
+import static
org.apache.solr.client.solrj.impl.BaseHttpClusterStateProvider.SYS_PROP_CACHE_TIMEOUT_SECONDS;
import static org.apache.solr.common.util.URLUtil.getNodeNameForBaseUrl;
import static org.hamcrest.Matchers.containsInAnyOrder;
import static org.hamcrest.Matchers.equalTo;
@@ -62,7 +63,7 @@ public class ClusterStateProviderTest extends
SolrCloudTestCase {
.resolve("conf"))
.configure();
cluster.waitForAllNodes(30);
- System.setProperty("solr.solrj.cache.timeout.sec", "1");
+ System.setProperty(SYS_PROP_CACHE_TIMEOUT_SECONDS, "1");
}
@After