[ https://issues.apache.org/jira/browse/HIVE-28531?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chiran Ravani updated HIVE-28531: --------------------------------- Description: When Iceberg table has a timestamp column metadata table query fails with below error. {code:java} Error while compiling statement: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.tez.TezTask. Vertex failed, vertexName=Map 1, vertexId=vertex_1726765525555_0001_6_00, diagnostics=[Task failed, taskId=task_1726765525555_0001_6_00_000000, diagnostics=[TaskAttempt 0 failed, info=[Error: Error while running task ( failure ) : attempt_1726765525555_0001_6_00_000000_0:java.lang.RuntimeException: java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row at org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:351) at org.apache.hadoop.hive.ql.exec.tez.TezProcessor.run(TezProcessor.java:280) at org.apache.tez.runtime.LogicalIOProcessorRuntimeTask.run(LogicalIOProcessorRuntimeTask.java:374) at org.apache.tez.runtime.task.TaskRunner2Callable$1.run(TaskRunner2Callable.java:86) at org.apache.tez.runtime.task.TaskRunner2Callable$1.run(TaskRunner2Callable.java:72) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/javax.security.auth.Subject.doAs(Subject.java:423) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1899) at org.apache.tez.runtime.task.TaskRunner2Callable.callInternal(TaskRunner2Callable.java:72) at org.apache.tez.runtime.task.TaskRunner2Callable.callInternal(TaskRunner2Callable.java:42) at org.apache.tez.common.CallableWithNdc.call(CallableWithNdc.java:36) at org.apache.hadoop.hive.llap.daemon.impl.StatsRecordingThreadPool$WrappedCallable.call(StatsRecordingThreadPool.java:118) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row at org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.processRow(MapRecordSource.java:101) at org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.pushRecord(MapRecordSource.java:76) at org.apache.hadoop.hive.ql.exec.tez.MapRecordProcessor.run(MapRecordProcessor.java:437) at org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:297) ... 15 more Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:580) at org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.processRow(MapRecordSource.java:92) ... 18 more Caused by: java.lang.ClassCastException: class java.time.OffsetDateTime cannot be cast to class java.time.LocalDateTime (java.time.OffsetDateTime and java.time.LocalDateTime are in module java.base of loader 'bootstrap') at org.apache.iceberg.mr.hive.serde.objectinspector.IcebergTimestampObjectInspectorHive3.getPrimitiveJavaObject(IcebergTimestampObjectInspectorHive3.java:58) at org.apache.iceberg.mr.hive.serde.objectinspector.IcebergTimestampObjectInspectorHive3.getPrimitiveWritableObject(IcebergTimestampObjectInspectorHive3.java:64) at org.apache.hadoop.hive.serde2.lazy.LazyUtils.writePrimitiveUTF8(LazyUtils.java:308) at org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe.serialize(LazySimpleSerDe.java:292) at org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe.serialize(LazySimpleSerDe.java:352) at org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe.serialize(LazySimpleSerDe.java:352) at org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe.serializeField(LazySimpleSerDe.java:247) at org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe.doSerialize(LazySimpleSerDe.java:231) at org.apache.hadoop.hive.serde2.AbstractEncodingAwareSerDe.serialize(AbstractEncodingAwareSerDe.java:52) at org.apache.hadoop.hive.ql.exec.FileSinkOperator.process(FileSinkOperator.java:1148) at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:937) at org.apache.hadoop.hive.ql.exec.SelectOperator.process(SelectOperator.java:95) at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:937) at org.apache.hadoop.hive.ql.exec.TableScanOperator.process(TableScanOperator.java:174) at org.apache.hadoop.hive.ql.exec.MapOperator$MapOpCtx.forward(MapOperator.java:154) at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:559) {code} Steps to reproduce the issue. {code:java} create database cravani; CREATE EXTERNAL TABLE `cravani`.`medatafetch`( `sec_id` decimal(38,0), `service_cd` string, `run_comment` string, `run_datetime` timestamp ) ROW FORMAT SERDE 'org.apache.iceberg.mr.hive.HiveIcebergSerDe' STORED BY 'org.apache.iceberg.mr.hive.HiveIcebergStorageHandler' TBLPROPERTIES ( 'format-version'='2', 'write.delete.mode'='merge-on-read', 'write.distribution-mode'='none', 'write.format.default'='parquet', 'write.merge.mode'='merge-on-read', 'write.update.mode'='merge-on-read'); INSERT INTO `cravani`.`medatafetch` values ('10','abcd','abcd',current_timestamp()); select * from cravani.medatafetch.files; {code} Issue does not appear when table has timestamptz column. eg:- {code:java} CREATE EXTERNAL TABLE `cravani`.`medatafetch_v1`( `sec_id` decimal(38,0), `service_cd` string, `run_comment` string, `run_datetime` TIMESTAMPLOCALTZ ) ROW FORMAT SERDE 'org.apache.iceberg.mr.hive.HiveIcebergSerDe' STORED BY 'org.apache.iceberg.mr.hive.HiveIcebergStorageHandler' TBLPROPERTIES ( 'format-version'='2', 'write.delete.mode'='merge-on-read', 'write.distribution-mode'='none', 'write.format.default'='parquet', 'write.merge.mode'='merge-on-read', 'write.update.mode'='merge-on-read'); INSERT INTO `cravani`.`medatafetch_v1` values ('10','abcd','abcd',current_timestamp()); select * from cravani.medatafetch_v1.files; {code} was: When Iceberg table has a timestamp column metadata table query fails with below error. {code:java} Error while compiling statement: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.tez.TezTask. Vertex failed, vertexName=Map 1, vertexId=vertex_1726765525555_0001_6_00, diagnostics=[Task failed, taskId=task_1726765525555_0001_6_00_000000, diagnostics=[TaskAttempt 0 failed, info=[Error: Error while running task ( failure ) : attempt_1726765525555_0001_6_00_000000_0:java.lang.RuntimeException: java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row at org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:351) at org.apache.hadoop.hive.ql.exec.tez.TezProcessor.run(TezProcessor.java:280) at org.apache.tez.runtime.LogicalIOProcessorRuntimeTask.run(LogicalIOProcessorRuntimeTask.java:374) at org.apache.tez.runtime.task.TaskRunner2Callable$1.run(TaskRunner2Callable.java:86) at org.apache.tez.runtime.task.TaskRunner2Callable$1.run(TaskRunner2Callable.java:72) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/javax.security.auth.Subject.doAs(Subject.java:423) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1899) at org.apache.tez.runtime.task.TaskRunner2Callable.callInternal(TaskRunner2Callable.java:72) at org.apache.tez.runtime.task.TaskRunner2Callable.callInternal(TaskRunner2Callable.java:42) at org.apache.tez.common.CallableWithNdc.call(CallableWithNdc.java:36) at org.apache.hadoop.hive.llap.daemon.impl.StatsRecordingThreadPool$WrappedCallable.call(StatsRecordingThreadPool.java:118) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row at org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.processRow(MapRecordSource.java:101) at org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.pushRecord(MapRecordSource.java:76) at org.apache.hadoop.hive.ql.exec.tez.MapRecordProcessor.run(MapRecordProcessor.java:437) at org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:297) ... 15 more Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:580) at org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.processRow(MapRecordSource.java:92) ... 18 more Caused by: java.lang.ClassCastException: class java.time.OffsetDateTime cannot be cast to class java.time.LocalDateTime (java.time.OffsetDateTime and java.time.LocalDateTime are in module java.base of loader 'bootstrap') at org.apache.iceberg.mr.hive.serde.objectinspector.IcebergTimestampObjectInspectorHive3.getPrimitiveJavaObject(IcebergTimestampObjectInspectorHive3.java:58) at org.apache.iceberg.mr.hive.serde.objectinspector.IcebergTimestampObjectInspectorHive3.getPrimitiveWritableObject(IcebergTimestampObjectInspectorHive3.java:64) at org.apache.hadoop.hive.serde2.lazy.LazyUtils.writePrimitiveUTF8(LazyUtils.java:308) at org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe.serialize(LazySimpleSerDe.java:292) at org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe.serialize(LazySimpleSerDe.java:352) at org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe.serialize(LazySimpleSerDe.java:352) at org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe.serializeField(LazySimpleSerDe.java:247) at org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe.doSerialize(LazySimpleSerDe.java:231) at org.apache.hadoop.hive.serde2.AbstractEncodingAwareSerDe.serialize(AbstractEncodingAwareSerDe.java:52) at org.apache.hadoop.hive.ql.exec.FileSinkOperator.process(FileSinkOperator.java:1148) at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:937) at org.apache.hadoop.hive.ql.exec.SelectOperator.process(SelectOperator.java:95) at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:937) at org.apache.hadoop.hive.ql.exec.TableScanOperator.process(TableScanOperator.java:174) at org.apache.hadoop.hive.ql.exec.MapOperator$MapOpCtx.forward(MapOperator.java:154) at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:559) {code} Steps to reproduce the issue. {code:java} create database cravani; CREATE EXTERNAL TABLE `cravani`.`medatafetch`( `sec_id` decimal(38,0), `service_cd` string, `run_comment` string, `run_datetime` timestamp ) ROW FORMAT SERDE 'org.apache.iceberg.mr.hive.HiveIcebergSerDe' STORED BY 'org.apache.iceberg.mr.hive.HiveIcebergStorageHandler' TBLPROPERTIES ( 'format-version'='2', 'write.delete.mode'='merge-on-read', 'write.distribution-mode'='none', 'write.format.default'='parquet', 'write.merge.mode'='merge-on-read', 'write.update.mode'='merge-on-read'); INSERT INTO `cravani`.`medatafetch` values ('10','abcd','abcd',current_timestamp()); select * from cravani.medatafetch.files; {code} Issue does not appear when table has timestamptz column. eg:- {code:java} CREATE EXTERNAL TABLE `cravani`.`medatafetch_v1`( `sec_id` decimal(38,0), `service_cd` string, `run_comment` string, `run_datetime` timestamp ) ROW FORMAT SERDE 'org.apache.iceberg.mr.hive.HiveIcebergSerDe' STORED BY 'org.apache.iceberg.mr.hive.HiveIcebergStorageHandler' TBLPROPERTIES ( 'format-version'='2', 'write.delete.mode'='merge-on-read', 'write.distribution-mode'='none', 'write.format.default'='parquet', 'write.merge.mode'='merge-on-read', 'write.update.mode'='merge-on-read'); INSERT INTO `cravani`.`medatafetch_v1` values ('10','abcd','abcd',current_timestamp()); select * from cravani.medatafetch_v1.files; {code} > Iceberg metadata table query failing with ClassCastException > ------------------------------------------------------------ > > Key: HIVE-28531 > URL: https://issues.apache.org/jira/browse/HIVE-28531 > Project: Hive > Issue Type: Bug > Security Level: Public(Viewable by anyone) > Reporter: Chiran Ravani > Priority: Major > > When Iceberg table has a timestamp column metadata table query fails with > below error. > {code:java} > Error while compiling statement: FAILED: Execution Error, return code 2 from > org.apache.hadoop.hive.ql.exec.tez.TezTask. Vertex failed, vertexName=Map 1, > vertexId=vertex_1726765525555_0001_6_00, diagnostics=[Task failed, > taskId=task_1726765525555_0001_6_00_000000, diagnostics=[TaskAttempt 0 > failed, info=[Error: Error while running task ( failure ) : > attempt_1726765525555_0001_6_00_000000_0:java.lang.RuntimeException: > java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: > Hive Runtime Error while processing row > at > org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:351) > at > org.apache.hadoop.hive.ql.exec.tez.TezProcessor.run(TezProcessor.java:280) > at > org.apache.tez.runtime.LogicalIOProcessorRuntimeTask.run(LogicalIOProcessorRuntimeTask.java:374) > at > org.apache.tez.runtime.task.TaskRunner2Callable$1.run(TaskRunner2Callable.java:86) > at > org.apache.tez.runtime.task.TaskRunner2Callable$1.run(TaskRunner2Callable.java:72) > at java.base/java.security.AccessController.doPrivileged(Native Method) > at java.base/javax.security.auth.Subject.doAs(Subject.java:423) > at > org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1899) > at > org.apache.tez.runtime.task.TaskRunner2Callable.callInternal(TaskRunner2Callable.java:72) > at > org.apache.tez.runtime.task.TaskRunner2Callable.callInternal(TaskRunner2Callable.java:42) > at org.apache.tez.common.CallableWithNdc.call(CallableWithNdc.java:36) > at > org.apache.hadoop.hive.llap.daemon.impl.StatsRecordingThreadPool$WrappedCallable.call(StatsRecordingThreadPool.java:118) > at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) > at java.base/java.lang.Thread.run(Thread.java:829) Caused by: > java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: > Hive Runtime Error while processing row > at > org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.processRow(MapRecordSource.java:101) > at > org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.pushRecord(MapRecordSource.java:76) > at > org.apache.hadoop.hive.ql.exec.tez.MapRecordProcessor.run(MapRecordProcessor.java:437) > at > org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:297) > ... 15 more Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: > Hive Runtime Error while processing row > at > org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:580) > at > org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.processRow(MapRecordSource.java:92) > ... 18 more Caused by: java.lang.ClassCastException: class > java.time.OffsetDateTime cannot be cast to class java.time.LocalDateTime > (java.time.OffsetDateTime and java.time.LocalDateTime are in module java.base > of loader 'bootstrap') > at > org.apache.iceberg.mr.hive.serde.objectinspector.IcebergTimestampObjectInspectorHive3.getPrimitiveJavaObject(IcebergTimestampObjectInspectorHive3.java:58) > at > org.apache.iceberg.mr.hive.serde.objectinspector.IcebergTimestampObjectInspectorHive3.getPrimitiveWritableObject(IcebergTimestampObjectInspectorHive3.java:64) > at > org.apache.hadoop.hive.serde2.lazy.LazyUtils.writePrimitiveUTF8(LazyUtils.java:308) > at > org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe.serialize(LazySimpleSerDe.java:292) > at > org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe.serialize(LazySimpleSerDe.java:352) > at > org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe.serialize(LazySimpleSerDe.java:352) > at > org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe.serializeField(LazySimpleSerDe.java:247) > at > org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe.doSerialize(LazySimpleSerDe.java:231) > at > org.apache.hadoop.hive.serde2.AbstractEncodingAwareSerDe.serialize(AbstractEncodingAwareSerDe.java:52) > at > org.apache.hadoop.hive.ql.exec.FileSinkOperator.process(FileSinkOperator.java:1148) > at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:937) > at > org.apache.hadoop.hive.ql.exec.SelectOperator.process(SelectOperator.java:95) > at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:937) > at > org.apache.hadoop.hive.ql.exec.TableScanOperator.process(TableScanOperator.java:174) > at > org.apache.hadoop.hive.ql.exec.MapOperator$MapOpCtx.forward(MapOperator.java:154) > at > org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:559) > {code} > > Steps to reproduce the issue. > {code:java} > create database cravani; > CREATE EXTERNAL TABLE `cravani`.`medatafetch`( > `sec_id` decimal(38,0), > `service_cd` string, > `run_comment` string, > `run_datetime` timestamp > ) > ROW FORMAT SERDE > 'org.apache.iceberg.mr.hive.HiveIcebergSerDe' > STORED BY > 'org.apache.iceberg.mr.hive.HiveIcebergStorageHandler' > TBLPROPERTIES ( > 'format-version'='2', > 'write.delete.mode'='merge-on-read', > 'write.distribution-mode'='none', > 'write.format.default'='parquet', > 'write.merge.mode'='merge-on-read', > 'write.update.mode'='merge-on-read'); > INSERT INTO `cravani`.`medatafetch` values > ('10','abcd','abcd',current_timestamp()); > select * from cravani.medatafetch.files; {code} > Issue does not appear when table has timestamptz column. > eg:- > {code:java} > CREATE EXTERNAL TABLE `cravani`.`medatafetch_v1`( > `sec_id` decimal(38,0), > `service_cd` string, > `run_comment` string, > `run_datetime` TIMESTAMPLOCALTZ ) > ROW FORMAT SERDE > 'org.apache.iceberg.mr.hive.HiveIcebergSerDe' > STORED BY > 'org.apache.iceberg.mr.hive.HiveIcebergStorageHandler' > TBLPROPERTIES ( > 'format-version'='2', > 'write.delete.mode'='merge-on-read', > 'write.distribution-mode'='none', > 'write.format.default'='parquet', > 'write.merge.mode'='merge-on-read', > 'write.update.mode'='merge-on-read'); > INSERT INTO `cravani`.`medatafetch_v1` values > ('10','abcd','abcd',current_timestamp()); > select * from cravani.medatafetch_v1.files; > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)