[
https://issues.apache.org/jira/browse/TAJO-1368?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14364763#comment-14364763
]
ASF GitHub Bot commented on TAJO-1368:
--------------------------------------
Github user jihoonson commented on the pull request:
https://github.com/apache/tajo/pull/402#issuecomment-82199826
Hi @ykrips thanks for your nice patch.
It looks good, but I have another suggestion even though it is not directly
related with this issue.
I think that ```union``` queries are popularly used for ETLs. So, I tested
the following query. (It is a CTAS statement of the case 1 of TAJO-1368.)
```
create table test using parquet as
select * from
(select c_custkey, c_nationkey from customer where c_nationkey < 0
union all
select c_custkey, c_nationkey from customer where c_nationkey > 0
) a
union all
select * from
(select c_custkey, c_nationkey from customer where c_nationkey < 0
union all
select c_custkey, c_nationkey from customer where c_nationkey > 0
) b
```
And, I found the following error.
```
2015-03-17 17:29:42,257 ERROR: org.apache.tajo.querymaster.QueryMasterTask
(startQuery(368)) -
java.lang.NullPointerException
at
org.apache.tajo.engine.planner.global.GlobalPlanner.buildNoPartitionedStorePlan(GlobalPlanner.java:1113)
at
org.apache.tajo.engine.planner.global.GlobalPlanner.buildStorePlan(GlobalPlanner.java:1037)
at
org.apache.tajo.engine.planner.global.GlobalPlanner.access$600(GlobalPlanner.java:68)
at
org.apache.tajo.engine.planner.global.GlobalPlanner$DistributedPlannerVisitor.visitCreateTable(GlobalPlanner.java:1570)
at
org.apache.tajo.engine.planner.global.GlobalPlanner$DistributedPlannerVisitor.visitCreateTable(GlobalPlanner.java:1141)
at
org.apache.tajo.plan.visitor.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:126)
at
org.apache.tajo.plan.visitor.BasicLogicalPlanVisitor.visitRoot(BasicLogicalPlanVisitor.java:151)
at
org.apache.tajo.engine.planner.global.GlobalPlanner$DistributedPlannerVisitor.visitRoot(GlobalPlanner.java:1146)
at
org.apache.tajo.engine.planner.global.GlobalPlanner$DistributedPlannerVisitor.visitRoot(GlobalPlanner.java:1141)
at
org.apache.tajo.plan.visitor.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:60)
at
org.apache.tajo.engine.planner.global.GlobalPlanner.build(GlobalPlanner.java:147)
at
org.apache.tajo.querymaster.QueryMasterTask.startQuery(QueryMasterTask.java:360)
at
org.apache.tajo.querymaster.QueryMasterTask.start(QueryMasterTask.java:175)
at
org.apache.tajo.querymaster.QueryMaster$QueryStartEventHandler.handle(QueryMaster.java:416)
at
org.apache.tajo.querymaster.QueryMaster$QueryStartEventHandler.handle(QueryMaster.java:403)
at
org.apache.hadoop.yarn.event.AsyncDispatcher.dispatch(AsyncDispatcher.java:173)
at
org.apache.hadoop.yarn.event.AsyncDispatcher$1.run(AsyncDispatcher.java:106)
at java.lang.Thread.run(Thread.java:745)
```
This error seems to be caused by misfunctioning of
```GlobalPlanner.hasUnionChild()```.
I think it would be great if you fix this bug, too.
> Exceptions during processing nested union queries
> -------------------------------------------------
>
> Key: TAJO-1368
> URL: https://issues.apache.org/jira/browse/TAJO-1368
> Project: Tajo
> Issue Type: Bug
> Components: distributed query plan, worker
> Reporter: Jihoon Son
> Assignee: Jihun Kang
>
> This error is reported from the Apache Tajo Korea user group
> (https://groups.google.com/forum/#!topic/tajo-user-kr/tipQj6cv-k0).
> You can reproduce the reported errors as follows:
> {noformat}
> default> create table test_union_all (cd int, nm text);
> default> insert into test_union_all select 1,'aaa';
> default> insert into test_union_all select 1,'bbb';
> {noformat}
> *Case 1*
> Distributed query planner emits NPE as follows:
> {noformat}
> default> select * from
> (
> select * from test_union_all
> union all
> select * from test_union_all
> )a
> union all
> select * from
> (
> select * from test_union_all
> union all
> select * from test_union_all
> )a;
> 2015-03-03 13:59:12,738 ERROR org.apache.tajo.querymaster.QueryMasterTask:
> java.lang.NullPointerException
> at
> org.apache.tajo.engine.planner.global.DataChannel.<init>(DataChannel.java:57)
> at
> org.apache.tajo.engine.planner.global.GlobalPlanner$DistributedPlannerVisitor.visitUnion(GlobalPlanner.java:1405)
> at
> org.apache.tajo.engine.planner.global.GlobalPlanner$DistributedPlannerVisitor.visitUnion(GlobalPlanner.java:1140)
> at
> org.apache.tajo.plan.visitor.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:96)
> at
> org.apache.tajo.plan.visitor.BasicLogicalPlanVisitor.visitRoot(BasicLogicalPlanVisitor.java:151)
> at
> org.apache.tajo.engine.planner.global.GlobalPlanner$DistributedPlannerVisitor.visitRoot(GlobalPlanner.java:1145)
> at
> org.apache.tajo.engine.planner.global.GlobalPlanner$DistributedPlannerVisitor.visitRoot(GlobalPlanner.java:1140)
> at
> org.apache.tajo.plan.visitor.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:60)
> at
> org.apache.tajo.engine.planner.global.GlobalPlanner.build(GlobalPlanner.java:146)
> at
> org.apache.tajo.querymaster.QueryMasterTask.startQuery(QueryMasterTask.java:357)
> at
> org.apache.tajo.querymaster.QueryMasterTask.start(QueryMasterTask.java:172)
> at
> org.apache.tajo.querymaster.QueryMaster$QueryStartEventHandler.handle(QueryMaster.java:410)
> at
> org.apache.tajo.querymaster.QueryMaster$QueryStartEventHandler.handle(QueryMaster.java:397)
> at
> org.apache.hadoop.yarn.event.AsyncDispatcher.dispatch(AsyncDispatcher.java:173)
> at
> org.apache.hadoop.yarn.event.AsyncDispatcher$1.run(AsyncDispatcher.java:106)
> at java.lang.Thread.run(Thread.java:745)
> {noformat}
> *Case 2*
> TaskRunner emits NPE as follows:
> {noformat}
> default> select * from (
> select cd, nm
> from
> (
> select cd, nm
> from
> (
> select cd, nm
> from test_union_all
> )a
> union all
> select cd, nm
> from
> (
> select cd, nm
> from test_union_all
> )a
> ) a
> )a;
> 2015-03-03 14:05:02,960 ERROR org.apache.tajo.worker.Task:
> java.lang.IllegalArgumentException: URI scheme is not "file"
> java.io.IOException: java.lang.IllegalArgumentException: URI scheme is not
> "file"
> at
> org.apache.tajo.storage.RawFile$RawFileAppender.init(RawFile.java:485)
> at
> org.apache.tajo.engine.planner.physical.StoreTableExec.openNewFile(StoreTableExec.java:110)
> at
> org.apache.tajo.engine.planner.physical.StoreTableExec.init(StoreTableExec.java:79)
> at org.apache.tajo.worker.Task.run(Task.java:405)
> at org.apache.tajo.worker.TaskRunner$1.run(TaskRunner.java:276)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.IllegalArgumentException: URI scheme is not "file"
> at java.io.File.<init>(File.java:421)
> at
> org.apache.tajo.storage.RawFile$RawFileAppender.init(RawFile.java:480)
> ... 5 more
> 2015-03-03 14:05:02,963 ERROR org.apache.tajo.worker.TaskRunner:
> java.lang.NullPointerException
> at
> org.apache.tajo.storage.RawFile$RawFileAppender.close(RawFile.java:756)
> at
> org.apache.tajo.engine.planner.physical.StoreTableExec.close(StoreTableExec.java:143)
> at org.apache.tajo.worker.Task.run(Task.java:417)
> at org.apache.tajo.worker.TaskRunner$1.run(TaskRunner.java:276)
> at java.lang.Thread.run(Thread.java:745)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)