You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by ja...@apache.org on 2026/01/06 09:55:19 UTC

(solr) branch branch_9_10 updated (9ce57506287 -> f87a8607744)

This is an automated email from the ASF dual-hosted git repository.

janhoy pushed a change to branch branch_9_10
in repository https://gitbox.apache.org/repos/asf/solr.git


    from 9ce57506287 Fix some compile-warnings on branch_9x for precommit (#3928)
     new 858d8270913 SOLR-18012 Improve test DistributedFacetSimpleRefinementLongTailTest that failed for some seeds (#3924)
     new f87a8607744 SOLR-18024 Flaky test CloudHttp2SolrClientTest.testHttpCspPerf (#3938)

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../DistributedFacetSimpleRefinementLongTailTest.java      | 14 ++++++++++----
 .../solr/client/solrj/impl/CloudHttp2SolrClientTest.java   | 14 ++++++++------
 2 files changed, 18 insertions(+), 10 deletions(-)


(solr) 01/02: SOLR-18012 Improve test DistributedFacetSimpleRefinementLongTailTest that failed for some seeds (#3924)

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

janhoy pushed a commit to branch branch_9_10
in repository https://gitbox.apache.org/repos/asf/solr.git

commit 858d82709130ccd249618bb652d08eba42b2367d
Author: Jan Høydahl <ja...@apache.org>
AuthorDate: Tue Dec 9 14:01:31 2025 +0100

    SOLR-18012 Improve test DistributedFacetSimpleRefinementLongTailTest that failed for some seeds (#3924)
    
    (cherry picked from commit 85390422881cbf7120377767147893ac3b3b8c00)
    (cherry picked from commit fa8c59bf08a7a538c0eb0c38feb002cccc9143f6)
---
 .../DistributedFacetSimpleRefinementLongTailTest.java      | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/solr/core/src/test/org/apache/solr/search/facet/DistributedFacetSimpleRefinementLongTailTest.java b/solr/core/src/test/org/apache/solr/search/facet/DistributedFacetSimpleRefinementLongTailTest.java
index 017b651dd5b..53f90f17462 100644
--- a/solr/core/src/test/org/apache/solr/search/facet/DistributedFacetSimpleRefinementLongTailTest.java
+++ b/solr/core/src/test/org/apache/solr/search/facet/DistributedFacetSimpleRefinementLongTailTest.java
@@ -39,6 +39,12 @@ import org.junit.Test;
  */
 public class DistributedFacetSimpleRefinementLongTailTest extends BaseDistributedSearchTestCase {
 
+  // Percentile calculations use the t-digest approximation algorithm with compression=100.
+  // When merging t-digests from multiple shards, approximation errors compound, especially
+  // for extreme percentiles (like 90th). A tolerance of 3.0 (~0.6% relative error for values
+  // in range [-99,693]) accounts for this distributed aggregation error.
+  private static final double PERCENTILE_TOLERANCE = 3.0;
+
   private static List<String> ALL_STATS =
       Arrays.asList(
           "min",
@@ -287,7 +293,7 @@ public class DistributedFacetSimpleRefinementLongTailTest extends BaseDistribute
       assertEquals(101L, bucket.get("countvals"));
       assertEquals(0L, bucket.get("missing"));
       assertEquals(48.0D, bucket.get("sum"));
-      assertEquals(1.0D, bucket.get("percentile"));
+      assertEquals(1.0D, (double) bucket.get("percentile"), PERCENTILE_TOLERANCE);
       assertEquals(0.475247524752475D, (double) bucket.get("avg"), 0.1E-7);
       assertEquals(54.0D, (double) bucket.get("sumsq"), 0.1E-7);
       assertEquals(0.55846323792D, (double) bucket.get("stddev"), 0.1E-7);
@@ -511,7 +517,7 @@ public class DistributedFacetSimpleRefinementLongTailTest extends BaseDistribute
     assertEquals(300L, aaa0_Bucket.get("countvals"));
     assertEquals(0L, aaa0_Bucket.get("missing"));
     assertEquals(34650.0D, aaa0_Bucket.get("sum"));
-    assertEquals(486.5D, (double) aaa0_Bucket.get("percentile"), 0.1E-7);
+    assertEquals(486.5D, (double) aaa0_Bucket.get("percentile"), PERCENTILE_TOLERANCE);
     assertEquals(115.5D, (double) aaa0_Bucket.get("avg"), 0.1E-7);
     assertEquals(1.674585E7D, (double) aaa0_Bucket.get("sumsq"), 0.1E-7);
     assertEquals(206.4493184076D, (double) aaa0_Bucket.get("stddev"), 0.1E-7);
@@ -527,7 +533,7 @@ public class DistributedFacetSimpleRefinementLongTailTest extends BaseDistribute
     assertEquals(0L, tail_Bucket.get("min"));
     assertEquals(44L, tail_Bucket.get("max"));
     assertEquals(90L, tail_Bucket.get("countvals"));
-    assertEquals(40.0D, tail_Bucket.get("percentile"));
+    assertEquals(40.0D, (double) tail_Bucket.get("percentile"), PERCENTILE_TOLERANCE);
     assertEquals(45L, tail_Bucket.get("missing"));
     assertEquals(1980.0D, tail_Bucket.get("sum"));
     assertEquals(22.0D, (double) tail_Bucket.get("avg"), 0.1E-7);
@@ -548,7 +554,7 @@ public class DistributedFacetSimpleRefinementLongTailTest extends BaseDistribute
     assertEquals(35L, tailB_Bucket.get("min"));
     assertEquals(40L, tailB_Bucket.get("max"));
     assertEquals(12L, tailB_Bucket.get("countvals"));
-    assertEquals(40.0D, tailB_Bucket.get("percentile"));
+    assertEquals(40.0D, (double) tailB_Bucket.get("percentile"), PERCENTILE_TOLERANCE);
     assertEquals(5L, tailB_Bucket.get("missing"));
     assertEquals(450.0D, tailB_Bucket.get("sum"));
     assertEquals(37.5D, (double) tailB_Bucket.get("avg"), 0.1E-7);


(solr) 02/02: SOLR-18024 Flaky test CloudHttp2SolrClientTest.testHttpCspPerf (#3938)

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

janhoy pushed a commit to branch branch_9_10
in repository https://gitbox.apache.org/repos/asf/solr.git

commit f87a8607744323ea6454b0121174c8a83a3c7ac3
Author: Jan Høydahl <ja...@apache.org>
AuthorDate: Tue Dec 16 11:33:04 2025 +0100

    SOLR-18024 Flaky test CloudHttp2SolrClientTest.testHttpCspPerf (#3938)
    
    Co-authored-by: David Smiley <ds...@apache.org>
    (cherry picked from commit 5201ea82f9e00f92cb69465f22868bff484ee7ed)
    (cherry picked from commit e0074321842a3c1ecaf51cff05eab8c1153cea86)
---
 .../solr/client/solrj/impl/CloudHttp2SolrClientTest.java   | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

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 dc09842be89..794874a5f19 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
@@ -96,6 +96,10 @@ public class CloudHttp2SolrClientTest extends SolrCloudTestCase {
   @BeforeClass
   public static void setupCluster() throws Exception {
     System.setProperty("metricsEnabled", "true");
+    // 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);
     configureCluster(NODE_COUNT)
         .addConfig(
             "conf",
@@ -258,14 +262,9 @@ public class CloudHttp2SolrClientTest extends SolrCloudTestCase {
     // 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)
-        .process(cluster.getSolrClient());
+        .process(getRandomClient());
     cluster.waitForActiveCollection(collectionName, 2, 2);
 
     try (LogListener adminLogs = LogListener.info(HttpSolrCall.class).substring("[admin]");
@@ -304,6 +303,9 @@ public class CloudHttp2SolrClientTest extends SolrCloudTestCase {
         assertEquals(2, adminLogs.getCount());
       }
     }
+
+    // Clean up the collection to allow test iterations to succeed
+    CollectionAdminRequest.deleteCollection(collectionName).process(getRandomClient());
   }
 
   private CloudSolrClient createHttpCSPBasedCloudSolrClient() {