Rajkumar Singh created HIVE-24113: ------------------------------------- Summary: NPE in GenericUDFToUnixTimeStamp Key: HIVE-24113 URL: https://issues.apache.org/jira/browse/HIVE-24113 Project: Hive Issue Type: Bug Components: Hive Affects Versions: 3.1.2 Reporter: Rajkumar Singh Assignee: Rajkumar Singh
Following query will trigger the getPartitionsByExpr call at HMS, HMS will try to evaluate the filter based on the PartitionExpressionForMetastore proxy, this proxy uses the QL packages to evaluate the filter and call GenericUDFToUnixTimeStamp. select * from table_name where hour between from_unixtime(unix_timestamp('2020090120', 'yyyyMMddHH') - 1*60*60, 'yyyyMMddHH') and from_unixtime(unix_timestamp('2020090122', 'yyyyMMddHH') + 2*60*60, 'yyyyMMddHH'); I think SessionState in the code path will always be NULL thats why it hit the NPE. {code:java} java.lang.NullPointerException: null at org.apache.hadoop.hive.ql.udf.generic.GenericUDFToUnixTimeStamp.initializeInput(GenericUDFToUnixTimeStamp.java:126) ~[hive-exec-3.1.0.3.1.5.65-1.jar:3.1.0.3.1.5.65-1] at org.apache.hadoop.hive.ql.udf.generic.GenericUDFToUnixTimeStamp.initialize(GenericUDFToUnixTimeStamp.java:75) ~[hive-exec-3.1.0.3.1.5.65-1.jar:3.1.0.3.1.5.65-1] at org.apache.hadoop.hive.ql.udf.generic.GenericUDF.initializeAndFoldConstants(GenericUDF.java:148) ~[hive-exec-3.1.0.3.1.5.65-1.jar:3.1.0.3.1.5.65-1] at org.apache.hadoop.hive.ql.exec.ExprNodeGenericFuncEvaluator.initialize(ExprNodeGenericFuncEvaluator.java:146) ~[hive-exec-3.1.0.3.1.5.65-1.jar:3.1.0.3.1.5.65-1] at org.apache.hadoop.hive.ql.exec.ExprNodeGenericFuncEvaluator.initialize(ExprNodeGenericFuncEvaluator.java:140) ~[hive-exec-3.1.0.3.1.5.65-1.jar:3.1.0.3.1.5.65-1] at org.apache.hadoop.hive.ql.exec.ExprNodeGenericFuncEvaluator.initialize(ExprNodeGenericFuncEvaluator.java:140) ~[hive-exec-3.1.0.3.1.5.65-1.jar:3.1.0.3.1.5.65-1] at org.apache.hadoop.hive.ql.exec.ExprNodeGenericFuncEvaluator.initialize(ExprNodeGenericFuncEvaluator.java:140) ~[hive-exec-3.1.0.3.1.5.65-1.jar:3.1.0.3.1.5.65-1] at org.apache.hadoop.hive.ql.exec.ExprNodeGenericFuncEvaluator.initialize(ExprNodeGenericFuncEvaluator.java:140) ~[hive-exec-3.1.0.3.1.5.65-1.jar:3.1.0.3.1.5.65-1] at org.apache.hadoop.hive.ql.optimizer.ppr.PartExprEvalUtils.prepareExpr(PartExprEvalUtils.java:119) ~[hive-exec-3.1.0.3.1.5.65-1.jar:3.1.0.3.1.5.65-1] at org.apache.hadoop.hive.ql.optimizer.ppr.PartitionPruner.prunePartitionNames(PartitionPruner.java:551) ~[hive-exec-3.1.0.3.1.5.65-1.jar:3.1.0.3.1.5.65-1] at org.apache.hadoop.hive.ql.optimizer.ppr.PartitionExpressionForMetastore.filterPartitionsByExpr(PartitionExpressionForMetastore.java:82) ~[hive-exec-3.1.0.3.1.5.65-1.jar:3.1.0.3.1.5.65-1] at org.apache.hadoop.hive.metastore.ObjectStore.getPartitionNamesPrunedByExprNoTxn(ObjectStore.java:3527) ~[hive-exec-3.1.0.3.1.5.65-1.jar:3.1.0.3.1.5.65-1] at org.apache.hadoop.hive.metastore.ObjectStore.access$1400(ObjectStore.java:252) ~[hive-exec-3.1.0.3.1.5.65-1.jar:3.1.0.3.1.5.65-1] at org.apache.hadoop.hive.metastore.ObjectStore$10.getJdoResult(ObjectStore.java:3493) ~[hive-exec-3.1.0.3.1.5.65-1.jar:3.1.0.3.1.5.65-1] at org.apache.hadoop.hive.metastore.ObjectStore$10.getJdoResult(ObjectStore.java:3464) ~[hive-exec-3.1.0.3.1.5.65-1.jar:3.1.0.3.1.5.65-1] at org.apache.hadoop.hive.metastore.ObjectStore$GetHelper.run(ObjectStore.java:3764) [hive-exec-3.1.0.3.1.5.65-1.jar:3.1.0.3.1.5.65-1] at org.apache.hadoop.hive.metastore.ObjectStore.getPartitionsByExprInternal(ObjectStore.java:3499) [hive-exec-3.1.0.3.1.5.65-1.jar:3.1.0.3.1.5.65-1] at org.apache.hadoop.hive.metastore.ObjectStore.getPartitionsByExpr(ObjectStore.java:3452) [hive-exec-3.1.0.3.1.5.65-1.jar:3.1.0.3.1.5.65-1] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_112] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_112] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_112] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_112] at org.apache.hadoop.hive.metastore.RawStoreProxy.invoke(RawStoreProxy.java:97) [hive-exec-3.1.0.3.1.5.65-1.jar:3.1.0.3.1.5.65-1] at com.sun.proxy.$Proxy28.getPartitionsByExpr(Unknown Source) [?:?] at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.get_partitions_by_expr(HiveMetaStore.java:6637) [hive-exec-3.1.0.3.1.5.65-1.jar:3.1.0.3.1.5.65-1] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_112] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)