This is an automated email from the ASF dual-hosted git repository.
janhoy pushed a commit to branch branch_10x
in repository https://gitbox.apache.org/repos/asf/solr.git
The following commit(s) were added to refs/heads/branch_10x by this push:
new 0fb256592de SOLR-18012 Improve test
DistributedFacetSimpleRefinementLongTailTest that failed for some seeds (#3924)
0fb256592de is described below
commit 0fb256592ded3e89084e5dc13eeb9503a2d9f367
Author: Jan Høydahl <[email protected]>
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)
---
...vement-DistributedFacetSimpleRefinementLongTailTest.yml | 8 ++++++++
.../DistributedFacetSimpleRefinementLongTailTest.java | 14 ++++++++++----
2 files changed, 18 insertions(+), 4 deletions(-)
diff --git
a/changelog/unreleased/SOLR-18012-test-improvement-DistributedFacetSimpleRefinementLongTailTest.yml
b/changelog/unreleased/SOLR-18012-test-improvement-DistributedFacetSimpleRefinementLongTailTest.yml
new file mode 100644
index 00000000000..fe31c546f20
--- /dev/null
+++
b/changelog/unreleased/SOLR-18012-test-improvement-DistributedFacetSimpleRefinementLongTailTest.yml
@@ -0,0 +1,8 @@
+# See https://github.com/apache/solr/blob/main/dev-docs/changelog.adoc
+title: Test improvement DistributedFacetSimpleRefinementLongTailTest that
failed for some seeds
+type: other # added, changed, fixed, deprecated, removed, dependency_update,
security, other
+authors:
+ - name: Jan Høydahl
+links:
+ - name: SOLR-18012
+ url: https://issues.apache.org/jira/browse/SOLR-18012
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 3483fc1cea9..8c8193281be 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);