jon-wei opened a new issue #9140: NPE with SQL-compatible null handling in LongSumAggregator compare URL: https://github.com/apache/druid/issues/9140 I observed the following NPE when running a TopN query with `druid.generic.useDefaultValueForNull=false`, when ordering by a long column that contains nulls: ``` java.lang.NullPointerException: null at org.apache.druid.query.aggregation.LongSumAggregator$1.compare(LongSumAggregator.java:36) ~[druid-processing-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.query.topn.TopNNumericResultBuilder.lambda$new$0(TopNNumericResultBuilder.java:96) ~[druid-processing-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at java.util.PriorityQueue.siftUpUsingComparator(PriorityQueue.java:670) ~[?:1.8.0_202] at java.util.PriorityQueue.siftUp(PriorityQueue.java:646) ~[?:1.8.0_202] at java.util.PriorityQueue.offer(PriorityQueue.java:345) ~[?:1.8.0_202] at java.util.PriorityQueue.add(PriorityQueue.java:322) ~[?:1.8.0_202] at org.apache.druid.query.topn.TopNNumericResultBuilder.addEntry(TopNNumericResultBuilder.java:178) ~[druid-processing-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.query.topn.TopNNumericResultBuilder.addEntry(TopNNumericResultBuilder.java:43) ~[druid-processing-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.query.topn.PooledTopNAlgorithm.updateResults(PooledTopNAlgorithm.java:745) ~[druid-processing-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.query.topn.PooledTopNAlgorithm.updateResults(PooledTopNAlgorithm.java:53) ~[druid-processing-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.query.topn.BaseTopNAlgorithm.runWithCardinalityKnown(BaseTopNAlgorithm.java:122) ~[druid-processing-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.query.topn.BaseTopNAlgorithm.run(BaseTopNAlgorithm.java:83) ~[druid-processing-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.query.topn.TopNMapFn.apply(TopNMapFn.java:67) ~[druid-processing-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.query.topn.TopNQueryEngine$1.apply(TopNQueryEngine.java:97) ~[druid-processing-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.query.topn.TopNQueryEngine$1.apply(TopNQueryEngine.java:90) ~[druid-processing-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.java.util.common.guava.MappingAccumulator.accumulate(MappingAccumulator.java:40) ~[druid-core-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.java.util.common.guava.FilteringAccumulator.accumulate(FilteringAccumulator.java:41) ~[druid-core-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.java.util.common.guava.MappingAccumulator.accumulate(MappingAccumulator.java:40) ~[druid-core-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.java.util.common.guava.BaseSequence.accumulate(BaseSequence.java:44) ~[druid-core-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.java.util.common.guava.MappedSequence.accumulate(MappedSequence.java:43) ~[druid-core-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.java.util.common.guava.WrappingSequence$1.get(WrappingSequence.java:50) ~[druid-core-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.java.util.common.guava.SequenceWrapper.wrap(SequenceWrapper.java:55) ~[druid-core-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.java.util.common.guava.WrappingSequence.accumulate(WrappingSequence.java:45) ~[druid-core-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.java.util.common.guava.FilteredSequence.accumulate(FilteredSequence.java:45) ~[druid-core-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.java.util.common.guava.MappedSequence.accumulate(MappedSequence.java:43) ~[druid-core-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.java.util.common.guava.FilteredSequence.accumulate(FilteredSequence.java:45) ~[druid-core-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.java.util.common.guava.WrappingSequence$1.get(WrappingSequence.java:50) ~[druid-core-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.java.util.common.guava.SequenceWrapper.wrap(SequenceWrapper.java:55) ~[druid-core-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.java.util.common.guava.WrappingSequence.accumulate(WrappingSequence.java:45) ~[druid-core-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.java.util.common.guava.LazySequence.accumulate(LazySequence.java:40) ~[druid-core-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.java.util.common.guava.WrappingSequence$1.get(WrappingSequence.java:50) ~[druid-core-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.java.util.common.guava.SequenceWrapper.wrap(SequenceWrapper.java:55) ~[druid-core-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.java.util.common.guava.WrappingSequence.accumulate(WrappingSequence.java:45) ~[druid-core-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.java.util.common.guava.LazySequence.accumulate(LazySequence.java:40) ~[druid-core-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.java.util.common.guava.WrappingSequence$1.get(WrappingSequence.java:50) ~[druid-core-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.java.util.common.guava.SequenceWrapper.wrap(SequenceWrapper.java:55) ~[druid-core-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.java.util.common.guava.WrappingSequence.accumulate(WrappingSequence.java:45) ~[druid-core-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.query.spec.SpecificSegmentQueryRunner$1.accumulate(SpecificSegmentQueryRunner.java:79) ~[druid-processing-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.java.util.common.guava.WrappingSequence$1.get(WrappingSequence.java:50) ~[druid-core-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.query.spec.SpecificSegmentQueryRunner.doNamed(SpecificSegmentQueryRunner.java:163) ~[druid-processing-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.query.spec.SpecificSegmentQueryRunner.access$100(SpecificSegmentQueryRunner.java:42) ~[druid-processing-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.query.spec.SpecificSegmentQueryRunner$2.wrap(SpecificSegmentQueryRunner.java:145) ~[druid-processing-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.java.util.common.guava.WrappingSequence.accumulate(WrappingSequence.java:45) ~[druid-core-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.java.util.common.guava.WrappingSequence$1.get(WrappingSequence.java:50) ~[druid-core-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.query.CPUTimeMetricQueryRunner$1.wrap(CPUTimeMetricQueryRunner.java:74) ~[druid-processing-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.java.util.common.guava.WrappingSequence.accumulate(WrappingSequence.java:45) ~[druid-core-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.java.util.common.guava.Sequence.toList(Sequence.java:85) ~[druid-core-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.query.ChainedExecutionQueryRunner$1$1.call(ChainedExecutionQueryRunner.java:124) ~[druid-processing-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at org.apache.druid.query.ChainedExecutionQueryRunner$1$1.call(ChainedExecutionQueryRunner.java:114) ~[druid-processing-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_202] at org.apache.druid.query.PrioritizedListenableFutureTask.run(PrioritizedExecutorService.java:247) ~[druid-processing-0.18.0-SNAPSHOT.jar:0.18.0-SNAPSHOT] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_202] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_202] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_202] ```
---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected] With regards, Apache Git Services --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
