You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@druid.apache.org by GitBox <gi...@apache.org> on 2020/01/07 23:59:16 UTC

[GitHub] [druid] jon-wei opened a new issue #9140: NPE with SQL-compatible null handling in LongSumAggregator compare

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:
users@infra.apache.org


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@druid.apache.org
For additional commands, e-mail: commits-help@druid.apache.org


[GitHub] [druid] jon-wei closed issue #9140: NPE with SQL-compatible null handling in LongSumAggregator compare

Posted by GitBox <gi...@apache.org>.
jon-wei closed issue #9140: NPE with SQL-compatible null handling in LongSumAggregator compare
URL: https://github.com/apache/druid/issues/9140
 
 
   

----------------------------------------------------------------
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:
users@infra.apache.org


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@druid.apache.org
For additional commands, e-mail: commits-help@druid.apache.org