You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Dongwook Kwon (JIRA)" <ji...@apache.org> on 2018/06/27 00:15:00 UTC

[jira] [Comment Edited] (HIVE-18786) NPE in Hive windowing functions

    [ https://issues.apache.org/jira/browse/HIVE-18786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16524365#comment-16524365 ] 

Dongwook Kwon edited comment on HIVE-18786 at 6/27/18 12:14 AM:
----------------------------------------------------------------

From my investigation, this bug was introduced by 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.

 


was (Author: dongwook):
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)