Mahesh Raju Somalaraju created HIVE-30159: ---------------------------------------------
Summary: SharedWorkOptimizer removes the only ReduceSink of a
work, query fails with "cannot find field key from [0:_col0, 1:_col1, 2:_col2]
Key: HIVE-30159
URL: https://issues.apache.org/jira/browse/HIVE-30159
Project: Hive
Issue Type: Bug
Components: Hive
Reporter: Mahesh Raju Somalaraju
Assignee: Mahesh Raju Somalaraju
A query that compiles fine fails at runtime when the Map task initializes its
operators:
Vertex failed, vertexName=Map 10, vertexId=vertex_1791813272617_0001_3_03,
diagnostics=[Task failed,
taskId=task_1791813272617_0001_3_03_000000, diagnostics=[TaskAttempt 0
failed, info=[Error: Error while running task ( failure ) :
java.lang.RuntimeException: java.lang.RuntimeException: Map operator
initialization failed
at
org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:342)
at
org.apache.hadoop.hive.ql.exec.tez.TezProcessor.run(TezProcessor.java:277)
at
org.apache.tez.runtime.LogicalIOProcessorRuntimeTask.run(LogicalIOProcessorRuntimeTask.java:381)
...
Caused by: java.lang.RuntimeException: Map operator initialization failed
at
org.apache.hadoop.hive.ql.exec.tez.MapRecordProcessor.init(MapRecordProcessor.java:355)
at
org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:293)
... 15 more
Caused by: java.lang.RuntimeException: cannot find field key from [0:_col0,
1:_col1, 2:_col2]
at
org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils.getStandardStructFieldRef(ObjectInspectorUtils.java:55
at
org.apache.hadoop.hive.serde2.objectinspector.StandardStructObjectInspector.getStructFieldRef(StandardStructObjectInspect
a:154)
at
org.apache.hadoop.hive.ql.exec.ExprNodeColumnEvaluator.initialize(ExprNodeColumnEvaluator.java:81)
at
org.apache.hadoop.hive.ql.exec.GroupByOperator.initializeOp(GroupByOperator.java:223)
at
org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:361)
at
org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:550)
at
org.apache.hadoop.hive.ql.exec.Operator.initializeChildren(Operator.java:504)
at
org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:370)
...
at
org.apache.hadoop.hive.ql.exec.tez.MapRecordProcessor.init(MapRecordProcessor.java:336)
... 16 more
+*Steps to reproduce*+
set hive.auto.convert.join=true;
set
hive.stats.column.autogather=false;
set
hive.tez.dynamic.partition.pruning.max.data.size=1000000;
create table ctrl (ctrl_dt string);
create table event_hist (user_id string) partitioned by (biz_dt string);
insert into ctrl values ('2026-10-07');
insert into event_hist
partition (biz_dt='2026-10-07') values ('u1'), ('u2'), (null);
alter table event_hist partition (biz_dt='2026-10-07') update statistics
set('numRows'='23911','rawDataSize'='104884811');
with prc_sts as (
select distinct a.ctrl_dt data_dt, b.prc_dttm, b.prc_user
from ctrl a left join (select 'x' prc_dttm,
'y' prc_user) b on 'A' = 'A'
),
eom_dt as (
select biz_dt eom_dt from event_hist where biz_dt in (select data_dt from
prc_sts)
),
pop as (
select e.user_id, e.biz_dt
from event_hist e
where e.biz_dt in (select eom_dt from eom_dt) and e.user_id is null
union all
select cast(count(*) as string), e.biz_dt
from event_hist e
where e.biz_dt in (select eom_dt from eom_dt) and e.user_id is not null
group by e.biz_dt
)
select count(*), p.prc_dttm, p.prc_user, d.biz_dt from pop d left join prc_sts
p on 'A' = 'A' group by d.biz_dt, p.prc_dttm, p.prc_user;
+*Expected result:*+ \{{2 x y 2026-10-07}}.
+*Actual result:*+ the vertex fails with the exception above.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
