Abhishek Girish created DRILL-4981:
--------------------------------------
Summary: TPC-DS Query 75 fails on MapR-DB JSON Tables
Key: DRILL-4981
URL: https://issues.apache.org/jira/browse/DRILL-4981
Project: Apache Drill
Issue Type: Bug
Components: Storage - MapRDB
Affects Versions: 1.9.0
Reporter: Abhishek Girish
Assignee: Smidth Panchamia
TPC-DS Query 75 fails on MapR-DB JSON Tables, but succeeds on Text, Parquet &
JSON File formats.
I'll work on a simpler repro. Find the original query & error below:
{code}
WITH all_sales
AS (SELECT d_year,
i_brand_id,
i_class_id,
i_category_id,
i_manufact_id,
Sum(sales_cnt) AS sales_cnt,
Sum(sales_amt) AS sales_amt
FROM (SELECT d_year,
i_brand_id,
i_class_id,
i_category_id,
i_manufact_id,
cs_quantity - COALESCE(cr_return_quantity, 0) AS
sales_cnt,
cs_ext_sales_price - COALESCE(cr_return_amount, 0.0) AS
sales_amt
FROM catalog_sales
JOIN item
ON i_item_sk = cs_item_sk
JOIN date_dim
ON d_date_sk = cs_sold_date_sk
LEFT JOIN catalog_returns
ON ( cs_order_number = cr_order_number
AND cs_item_sk = cr_item_sk )
WHERE i_category = 'Men'
UNION
SELECT d_year,
i_brand_id,
i_class_id,
i_category_id,
i_manufact_id,
ss_quantity - COALESCE(sr_return_quantity, 0) AS
sales_cnt,
ss_ext_sales_price - COALESCE(sr_return_amt, 0.0) AS
sales_amt
FROM store_sales
JOIN item
ON i_item_sk = ss_item_sk
JOIN date_dim
ON d_date_sk = ss_sold_date_sk
LEFT JOIN store_returns
ON ( ss_ticket_number = sr_ticket_number
AND ss_item_sk = sr_item_sk )
WHERE i_category = 'Men'
UNION
SELECT d_year,
i_brand_id,
i_class_id,
i_category_id,
i_manufact_id,
ws_quantity - COALESCE(wr_return_quantity, 0) AS
sales_cnt,
ws_ext_sales_price - COALESCE(wr_return_amt, 0.0) AS
sales_amt
FROM web_sales
JOIN item
ON i_item_sk = ws_item_sk
JOIN date_dim
ON d_date_sk = ws_sold_date_sk
LEFT JOIN web_returns
ON ( ws_order_number = wr_order_number
AND ws_item_sk = wr_item_sk )
WHERE i_category = 'Men') sales_detail
GROUP BY d_year,
i_brand_id,
i_class_id,
i_category_id,
i_manufact_id)
SELECT prev_yr.d_year AS prev_year,
curr_yr.d_year AS year1,
curr_yr.i_brand_id,
curr_yr.i_class_id,
curr_yr.i_category_id,
curr_yr.i_manufact_id,
prev_yr.sales_cnt AS prev_yr_cnt,
curr_yr.sales_cnt AS curr_yr_cnt,
curr_yr.sales_cnt - prev_yr.sales_cnt AS sales_cnt_diff,
curr_yr.sales_amt - prev_yr.sales_amt AS sales_amt_diff
FROM all_sales curr_yr,
all_sales prev_yr
WHERE curr_yr.i_brand_id = prev_yr.i_brand_id
AND curr_yr.i_class_id = prev_yr.i_class_id
AND curr_yr.i_category_id = prev_yr.i_category_id
AND curr_yr.i_manufact_id = prev_yr.i_manufact_id
AND curr_yr.d_year = 2002
AND prev_yr.d_year = 2002 - 1
AND Cast(curr_yr.sales_cnt AS DECIMAL(17, 2)) / Cast(prev_yr.sales_cnt
AS
DECIMAL(17, 2))
< 0.9
ORDER BY sales_cnt_diff
LIMIT 100
{code}
Error:
{code}
Failed with exception
java.sql.SQLException: SYSTEM ERROR: NullPointerException
[Error Id: 128bb62b-a6af-4b8f-90d5-d9f516b9e3d4 on atsqa6c83.qa.lab:31010]
(org.apache.drill.exec.work.foreman.ForemanException) Unexpected exception
during fragment initialization: null
org.apache.drill.exec.work.foreman.Foreman.run():281
java.util.concurrent.ThreadPoolExecutor.runWorker():1145
java.util.concurrent.ThreadPoolExecutor$Worker.run():615
java.lang.Thread.run():744
Caused By (java.lang.NullPointerException) null
org.apache.drill.exec.store.mapr.db.MapRDBGroupScan.applyAssignments():205
org.apache.drill.exec.planner.fragment.Wrapper$AssignEndpointsToScanAndStore.visitGroupScan():116
org.apache.drill.exec.planner.fragment.Wrapper$AssignEndpointsToScanAndStore.visitGroupScan():103
org.apache.drill.exec.physical.base.AbstractGroupScan.accept():63
org.apache.drill.exec.physical.base.AbstractPhysicalVisitor.visitChildren():138
org.apache.drill.exec.planner.fragment.Wrapper$AssignEndpointsToScanAndStore.visitOp():134
org.apache.drill.exec.planner.fragment.Wrapper$AssignEndpointsToScanAndStore.visitOp():103
org.apache.drill.exec.physical.base.AbstractPhysicalVisitor.visitProject():77
org.apache.drill.exec.physical.config.Project.accept():51
org.apache.drill.exec.physical.base.AbstractPhysicalVisitor.visitChildren():138
org.apache.drill.exec.planner.fragment.Wrapper$AssignEndpointsToScanAndStore.visitOp():134
org.apache.drill.exec.planner.fragment.Wrapper$AssignEndpointsToScanAndStore.visitOp():103
org.apache.drill.exec.physical.base.AbstractPhysicalVisitor.visitHashJoin():150
org.apache.drill.exec.physical.config.HashJoinPOP.accept():64
org.apache.drill.exec.physical.base.AbstractPhysicalVisitor.visitChildren():138
org.apache.drill.exec.planner.fragment.Wrapper$AssignEndpointsToScanAndStore.visitOp():134
org.apache.drill.exec.planner.fragment.Wrapper$AssignEndpointsToScanAndStore.visitOp():103
org.apache.drill.exec.physical.base.AbstractPhysicalVisitor.visitProject():77
org.apache.drill.exec.physical.config.Project.accept():51
org.apache.drill.exec.physical.base.AbstractPhysicalVisitor.visitChildren():138
org.apache.drill.exec.planner.fragment.Wrapper$AssignEndpointsToScanAndStore.visitOp():134
org.apache.drill.exec.planner.fragment.Wrapper$AssignEndpointsToScanAndStore.visitOp():103
org.apache.drill.exec.physical.base.AbstractPhysicalVisitor.visitHashJoin():150
org.apache.drill.exec.physical.config.HashJoinPOP.accept():64
org.apache.drill.exec.physical.base.AbstractPhysicalVisitor.visitChildren():138
org.apache.drill.exec.planner.fragment.Wrapper$AssignEndpointsToScanAndStore.visitOp():134
org.apache.drill.exec.planner.fragment.Wrapper$AssignEndpointsToScanAndStore.visitOp():103
org.apache.drill.exec.physical.base.AbstractPhysicalVisitor.visitProject():77
org.apache.drill.exec.physical.config.Project.accept():51
org.apache.drill.exec.physical.base.AbstractPhysicalVisitor.visitChildren():138
org.apache.drill.exec.planner.fragment.Wrapper$AssignEndpointsToScanAndStore.visitOp():134
org.apache.drill.exec.planner.fragment.Wrapper$AssignEndpointsToScanAndStore.visitOp():103
org.apache.drill.exec.physical.base.AbstractPhysicalVisitor.visitHashJoin():150
org.apache.drill.exec.physical.config.HashJoinPOP.accept():64
org.apache.drill.exec.physical.base.AbstractPhysicalVisitor.visitChildren():138
org.apache.drill.exec.planner.fragment.Wrapper$AssignEndpointsToScanAndStore.visitOp():134
org.apache.drill.exec.planner.fragment.Wrapper$AssignEndpointsToScanAndStore.visitOp():103
org.apache.drill.exec.physical.base.AbstractPhysicalVisitor.visitProject():77
org.apache.drill.exec.physical.config.Project.accept():51
org.apache.drill.exec.physical.base.AbstractPhysicalVisitor.visitChildren():138
org.apache.drill.exec.planner.fragment.Wrapper$AssignEndpointsToScanAndStore.visitOp():134
org.apache.drill.exec.planner.fragment.Wrapper$AssignEndpointsToScanAndStore.visitOp():103
org.apache.drill.exec.physical.base.AbstractPhysicalVisitor.visitUnion():57
org.apache.drill.exec.physical.config.UnionAll.accept():44
org.apache.drill.exec.physical.base.AbstractPhysicalVisitor.visitChildren():138
org.apache.drill.exec.planner.fragment.Wrapper$AssignEndpointsToScanAndStore.visitOp():134
org.apache.drill.exec.planner.fragment.Wrapper$AssignEndpointsToScanAndStore.visitOp():103
org.apache.drill.exec.physical.base.AbstractPhysicalVisitor.visitHashAggregate():102
org.apache.drill.exec.physical.config.HashAggregate.accept():67
org.apache.drill.exec.physical.base.AbstractPhysicalVisitor.visitChildren():138
org.apache.drill.exec.planner.fragment.Wrapper$AssignEndpointsToScanAndStore.visitOp():134
org.apache.drill.exec.planner.fragment.Wrapper$AssignEndpointsToScanAndStore.visitOp():103
org.apache.drill.exec.physical.base.AbstractPhysicalVisitor.visitProject():77
org.apache.drill.exec.physical.config.Project.accept():51
org.apache.drill.exec.physical.base.AbstractPhysicalVisitor.visitChildren():138
org.apache.drill.exec.planner.fragment.Wrapper$AssignEndpointsToScanAndStore.visitOp():134
org.apache.drill.exec.planner.fragment.Wrapper$AssignEndpointsToScanAndStore.visitExchange():108
org.apache.drill.exec.planner.fragment.Wrapper$AssignEndpointsToScanAndStore.visitExchange():103
org.apache.drill.exec.physical.base.AbstractExchange.accept():123
org.apache.drill.exec.planner.fragment.Wrapper.assignEndpoints():148
org.apache.drill.exec.planner.fragment.SoftAffinityFragmentParallelizer.parallelizeFragment():86
org.apache.drill.exec.planner.fragment.SimpleParallelizer.parallelizeFragment():251
org.apache.drill.exec.planner.fragment.SimpleParallelizer.parallelizeFragment():243
org.apache.drill.exec.planner.fragment.SimpleParallelizer.parallelizeFragment():243
org.apache.drill.exec.planner.fragment.SimpleParallelizer.parallelizeFragment():243
org.apache.drill.exec.planner.fragment.SimpleParallelizer.parallelizeFragment():243
org.apache.drill.exec.planner.fragment.SimpleParallelizer.getFragmentsHelper():167
org.apache.drill.exec.planner.fragment.SimpleParallelizer.getFragments():126
org.apache.drill.exec.work.foreman.Foreman.getQueryWorkUnit():596
org.apache.drill.exec.work.foreman.Foreman.runPhysicalPlan():426
org.apache.drill.exec.work.foreman.Foreman.runSQL():1010
org.apache.drill.exec.work.foreman.Foreman.run():264
java.util.concurrent.ThreadPoolExecutor.runWorker():1145
java.util.concurrent.ThreadPoolExecutor$Worker.run():615
java.lang.Thread.run():744
at
org.apache.drill.jdbc.impl.DrillCursor.nextRowInternally(DrillCursor.java:232)
at
org.apache.drill.jdbc.impl.DrillCursor.loadInitialSchema(DrillCursor.java:275)
at
org.apache.drill.jdbc.impl.DrillResultSetImpl.execute(DrillResultSetImpl.java:1943)
at
org.apache.drill.jdbc.impl.DrillResultSetImpl.execute(DrillResultSetImpl.java:76)
at
oadd.org.apache.calcite.avatica.AvaticaConnection$1.execute(AvaticaConnection.java:473)
at
org.apache.drill.jdbc.impl.DrillMetaImpl.prepareAndExecute(DrillMetaImpl.java:465)
at
oadd.org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:477)
at
org.apache.drill.jdbc.impl.DrillConnectionImpl.prepareAndExecuteInternal(DrillConnectionImpl.java:169)
at
oadd.org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:109)
at
oadd.org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:130)
at
org.apache.drill.jdbc.impl.DrillStatementImpl.executeQuery(DrillStatementImpl.java:112)
at
org.apache.drill.test.framework.DrillTestJdbc.executeQuery(DrillTestJdbc.java:175)
at
org.apache.drill.test.framework.DrillTestJdbc.run(DrillTestJdbc.java:100)
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: oadd.org.apache.drill.common.exceptions.UserRemoteException: SYSTEM
ERROR: NullPointerException
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)