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)

Reply via email to