Never reduce the same agg twice
Some randomization caused reduction of the same agg multiple times which causes issues on some aggregations. Relates to #23253
This commit is contained in:
parent
489f38918d
commit
5e4ba4a60e
|
@ -180,9 +180,9 @@ public abstract class AggregatorTestCase extends ESTestCase {
|
||||||
if (aggs.isEmpty()) {
|
if (aggs.isEmpty()) {
|
||||||
return null;
|
return null;
|
||||||
} else {
|
} else {
|
||||||
if (randomBoolean()) {
|
if (randomBoolean() && aggs.size() > 1) {
|
||||||
// sometimes do an incremental reduce
|
// never do am incremental reduce with only one - some aggs can't deal with this.
|
||||||
List<InternalAggregation> internalAggregations = randomSubsetOf(randomIntBetween(1, aggs.size()), aggs);
|
List<InternalAggregation> internalAggregations = randomSubsetOf(randomIntBetween(2, aggs.size()), aggs);
|
||||||
A internalAgg = (A) aggs.get(0).doReduce(internalAggregations,
|
A internalAgg = (A) aggs.get(0).doReduce(internalAggregations,
|
||||||
new InternalAggregation.ReduceContext(root.context().bigArrays(), null, false));
|
new InternalAggregation.ReduceContext(root.context().bigArrays(), null, false));
|
||||||
aggs.removeAll(internalAggregations);
|
aggs.removeAll(internalAggregations);
|
||||||
|
|
|
@ -57,9 +57,9 @@ public abstract class InternalAggregationTestCase<T extends InternalAggregation>
|
||||||
inputs.add(t);
|
inputs.add(t);
|
||||||
toReduce.add(t);
|
toReduce.add(t);
|
||||||
}
|
}
|
||||||
if (randomBoolean()) {
|
if (randomBoolean() && toReduceSize > 1) {
|
||||||
// we leave at least one in the list
|
// never do am incremental reduce with only one - some aggs can't deal with this.
|
||||||
List<InternalAggregation> internalAggregations = randomSubsetOf(randomIntBetween(1, toReduceSize), toReduce);
|
List<InternalAggregation> internalAggregations = randomSubsetOf(randomIntBetween(2, toReduceSize), toReduce);
|
||||||
InternalAggregation.ReduceContext context = new InternalAggregation.ReduceContext(null, null, true);
|
InternalAggregation.ReduceContext context = new InternalAggregation.ReduceContext(null, null, true);
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
T reduced = (T) inputs.get(0).reduce(internalAggregations, context);
|
T reduced = (T) inputs.get(0).reduce(internalAggregations, context);
|
||||||
|
|
Loading…
Reference in New Issue