Druid groupBy V1 Error

2018-10-10T03:26:52,897 ERROR [processing-12] io.druid.query.GroupByMergedQueryRunner - Exception with one of the sequences!

io.druid.java.util.common.IAE: Cannot add row[MapBasedInputRow{timestamp=2018-10-02T16:00:00.000Z, event={version_name=4.24.1, is_member_hash_id_day_new=false, 3610=io.druid.query.aggregation.datasketches.theta.SketchHolder@4c9d2120, 3608=io.druid.query.aggregation.datasketches.theta.SketchHolder@3a8880fb}, dimensions=[version_name, is_member_hash_id_day_new]}] because it is below the minTimestamp[2018-10-04T13:00:00.000Z]

at io.druid.segment.incremental.IncrementalIndex.toTimeAndDims(IncrementalIndex.java:524) ~[druid-processing-0.12.0.jar:0.12.0]

at io.druid.segment.incremental.IncrementalIndex.add(IncrementalIndex.java:503) ~[druid-processing-0.12.0.jar:0.12.0]

at io.druid.segment.incremental.IncrementalIndex.add(IncrementalIndex.java:498) ~[druid-processing-0.12.0.jar:0.12.0]

at io.druid.query.groupby.GroupByQueryHelper$3.accumulate(GroupByQueryHelper.java:148) ~[druid-processing-0.12.0.jar:0.12.0]

at io.druid.query.groupby.GroupByQueryHelper$3.accumulate(GroupByQueryHelper.java:140) ~[druid-processing-0.12.0.jar:0.12.0]

at io.druid.java.util.common.guava.MappingAccumulator.accumulate(MappingAccumulator.java:40) ~[java-util-0.12.0.jar:0.12.0]

at io.druid.java.util.common.guava.BaseSequence.accumulate(BaseSequence.java:46) ~[java-util-0.12.0.jar:0.12.0]

at io.druid.java.util.common.guava.MappedSequence.accumulate(MappedSequence.java:43) ~[java-util-0.12.0.jar:0.12.0]

at io.druid.java.util.common.guava.LazySequence.accumulate(LazySequence.java:40) ~[java-util-0.12.0.jar:0.12.0]

at io.druid.java.util.common.guava.WrappingSequence$1.get(WrappingSequence.java:50) ~[java-util-0.12.0.jar:0.12.0]

at io.druid.java.util.common.guava.SequenceWrapper.wrap(SequenceWrapper.java:55) ~[java-util-0.12.0.jar:0.12.0]

at io.druid.java.util.common.guava.WrappingSequence.accumulate(WrappingSequence.java:45) ~[java-util-0.12.0.jar:0.12.0]

at io.druid.query.spec.SpecificSegmentQueryRunner$2.accumulate(SpecificSegmentQueryRunner.java:86) ~[druid-processing-0.12.0.jar:0.12.0]

at io.druid.java.util.common.guava.WrappingSequence$1.get(WrappingSequence.java:50) ~[java-util-0.12.0.jar:0.12.0]

at io.druid.query.spec.SpecificSegmentQueryRunner.doNamed(SpecificSegmentQueryRunner.java:172) ~[druid-processing-0.12.0.jar:0.12.0]

at io.druid.query.spec.SpecificSegmentQueryRunner.access$200(SpecificSegmentQueryRunner.java:45) ~[druid-processing-0.12.0.jar:0.12.0]

at io.druid.query.spec.SpecificSegmentQueryRunner$3.wrap(SpecificSegmentQueryRunner.java:152) ~[druid-processing-0.12.0.jar:0.12.0]

at io.druid.java.util.common.guava.WrappingSequence.accumulate(WrappingSequence.java:45) ~[java-util-0.12.0.jar:0.12.0]

at io.druid.java.util.common.guava.WrappingSequence$1.get(WrappingSequence.java:50) ~[java-util-0.12.0.jar:0.12.0]

at io.druid.query.CPUTimeMetricQueryRunner$1.wrap(CPUTimeMetricQueryRunner.java:74) ~[druid-processing-0.12.0.jar:0.12.0]

at io.druid.java.util.common.guava.WrappingSequence.accumulate(WrappingSequence.java:45) ~[java-util-0.12.0.jar:0.12.0]

at io.druid.query.GroupByMergedQueryRunner$1$1.call(GroupByMergedQueryRunner.java:121) [druid-processing-0.12.0.jar:0.12.0]

at io.druid.query.GroupByMergedQueryRunner$1$1.call(GroupByMergedQueryRunner.java:111) [druid-processing-0.12.0.jar:0.12.0]

at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]

at io.druid.query.PrioritizedListenableFutureTask.run(PrioritizedExecutorService.java:249) [druid-processing-0.12.0.jar:0.12.0]

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]

at java.lang.Thread.run(Thread.java:748) [?:?]

what the reason?

The minTimestamp there is set in GroupByQueryHelper here:


public static <T> Pair<IncrementalIndex, Accumulator<IncrementalIndex, T>> createIndexAccumulatorPair(

final GroupByQuery query,
final GroupByQueryConfig config,
NonBlockingPool<ByteBuffer> bufferPool,
final boolean combine

)
{
final GroupByQueryConfig querySpecificConfig = config.withOverrides(query);
final Granularity gran = query.getGranularity();
final DateTime timeStart = query.getIntervals().get(0).getStart();


minTimestamp will be the start of the query interval, so it looks like there are rows in the query result outside of the query interval, not sure why that would happen.

Does this occur if you use GroupBy V2 instead of V1?

Thanks,

Jon