[ https://issues.apache.org/jira/browse/HIVE-18786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16524365#comment-16524365 ]
Dongwook Kwon commented on HIVE-18786: -------------------------------------- >From my investigation, this bug was introduced by >[HIVE-15520||https://issues.apache.org/jira/browse/HIVE-15520] [https://github.com/apache/hive/blob/rel/release-2.3.3/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFEvaluator.java#L294-L296] Above code works well as long as JVM isn't reused. however when Tez reuse container, partitionEvaluator has null blockInfos which cleaned by previous use. I believe my patch will fix this issue for Tez, could someone review it. > NPE in Hive windowing functions > ------------------------------- > > Key: HIVE-18786 > URL: https://issues.apache.org/jira/browse/HIVE-18786 > Project: Hive > Issue Type: Bug > Affects Versions: 2.3.2 > Reporter: Michael Bieniosek > Priority: Critical > > When I run a Hive query with windowing functions, if there's enough data I > get an NPE. > For example something like this query might break: > select id, created_date, max(created_date) over (partition by id) > latest_created_any from ... > The only workaround I've found is to remove the windowing functions entirely. > The stacktrace looks suspiciously similar to +HIVE-15278+, but I'm in > hive-2.3.2 which appears to have the bugfix applied. > > Caused by: java.lang.RuntimeException: > org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while > processing row (tag=0) <some row data here> > at > org.apache.hadoop.hive.ql.exec.tez.ReduceRecordSource.pushRecord(ReduceRecordSource.java:297) > at > org.apache.hadoop.hive.ql.exec.tez.ReduceRecordProcessor.run(ReduceRecordProcessor.java:317) > at > org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:185) > ... 14 more > Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime > Error while processing row (tag=0) <some row data here> > at > org.apache.hadoop.hive.ql.exec.tez.ReduceRecordSource$GroupIterator.next(ReduceRecordSource.java:365) > at > org.apache.hadoop.hive.ql.exec.tez.ReduceRecordSource.pushRecord(ReduceRecordSource.java:287) > ... 16 more > Caused by: java.lang.NullPointerException > at > org.apache.hadoop.hive.ql.exec.persistence.PTFRowContainer.first(PTFRowContainer.java:115) > at > org.apache.hadoop.hive.ql.exec.PTFPartition.iterator(PTFPartition.java:114) > at > org.apache.hadoop.hive.ql.udf.ptf.BasePartitionEvaluator.getPartitionAgg(BasePartitionEvaluator.java:200) > at > org.apache.hadoop.hive.ql.udf.ptf.WindowingTableFunction.evaluateFunctionOnPartition(WindowingTableFunction.java:155) > at > org.apache.hadoop.hive.ql.udf.ptf.WindowingTableFunction.iterator(WindowingTableFunction.java:538) > at > org.apache.hadoop.hive.ql.exec.PTFOperator$PTFInvocation.finishPartition(PTFOperator.java:349) > at > org.apache.hadoop.hive.ql.exec.PTFOperator.process(PTFOperator.java:123) > at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:897) > at > org.apache.hadoop.hive.ql.exec.SelectOperator.process(SelectOperator.java:95) > at > org.apache.hadoop.hive.ql.exec.tez.ReduceRecordSource$GroupIterator.next(ReduceRecordSource.java:356) -- This message was sent by Atlassian JIRA (v7.6.3#76005)