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

Reply via email to