[ 
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)

Reply via email to