[
https://issues.apache.org/jira/browse/TAJO-1097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14161788#comment-14161788
]
Mai Hai Thanh commented on TAJO-1097:
-------------------------------------
[~jhkim], I think that we cannot remove the part of setting buffer limit in
fillBuffer(). The reason is that the fragment we need to scan may end before
the end of the physical file (that is, fragment.startOffset + fragment.length <
fragment's physical file's file size). If we remove, there may be no Exception
but the query's result may not be correct.
> IllegalArgumentException: RawFileScanner
> ----------------------------------------
>
> Key: TAJO-1097
> URL: https://issues.apache.org/jira/browse/TAJO-1097
> Project: Tajo
> Issue Type: Bug
> Components: data shuffle, storage
> Affects Versions: 0.9.0
> Reporter: Jinho Kim
> Assignee: Mai Hai Thanh
> Priority: Blocker
> Fix For: 0.9.0
>
> Attachments: TAJO-1097.jinho.patch
>
>
> When I ran my customer query and TPCH-Q9, got this error.
> {code:title=Q9 |borderStyle=solid}
> select
> nation, o_year, sum(amount) as sum_profit
> from
> (
> select
> n_name as nation, substr(o_orderdate, 1, 4) as o_year,
> l_extendedprice * (1 - l_discount) - ps_supplycost * l_quantity as amount
> from
> orders o join
> (select l_extendedprice, l_discount, l_quantity, l_orderkey, n_name,
> ps_supplycost
> from part p join
> (select l_extendedprice, l_discount, l_quantity, l_partkey,
> l_orderkey,
> n_name, ps_supplycost
> from partsupp ps join
> (select l_suppkey, l_extendedprice, l_discount, l_quantity,
> l_partkey,
> l_orderkey, n_name
> from
> (select s_suppkey, n_name
> from nation n join supplier s on n.n_nationkey = s.s_nationkey
> ) s1 join lineitem l on s1.s_suppkey = l.l_suppkey
> ) l1 on ps.ps_suppkey = l1.l_suppkey and ps.ps_partkey =
> l1.l_partkey
> ) l2 on p.p_name like '%green%' and p.p_partkey = l2.l_partkey
> ) l3 on o.o_orderkey = l3.l_orderkey
> )profit
> group by nation, o_year
> order by nation, o_year desc;
> {code}
> {noformat}
> ERROR: java.lang.IllegalArgumentException
> java.io.IOException: java.lang.IllegalArgumentException
> at
> org.apache.tajo.engine.planner.physical.HashShuffleFileWriteExec.next(HashShuffleFileWriteExec.java:152)
> at org.apache.tajo.worker.Task.run(Task.java:446)
> at org.apache.tajo.worker.TaskRunner$1.run(TaskRunner.java:276)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.IllegalArgumentException
> at java.nio.Buffer.limit(Buffer.java:267)
> at
> org.apache.tajo.storage.RawFile$RawFileScanner.fillBuffer(RawFile.java:154)
> at org.apache.tajo.storage.RawFile$RawFileScanner.next(RawFile.java:263)
> at org.apache.tajo.storage.MergeScanner.next(MergeScanner.java:95)
> at
> org.apache.tajo.engine.planner.physical.SeqScanExec.next(SeqScanExec.java:268)
> at
> org.apache.tajo.engine.planner.physical.HashJoinExec.next(HashJoinExec.java:117)
> at
> org.apache.tajo.engine.planner.physical.ProjectionExec.next(ProjectionExec.java:54)
> at
> org.apache.tajo.engine.planner.physical.ProjectionExec.next(ProjectionExec.java:54)
> at
> org.apache.tajo.engine.planner.physical.HashShuffleFileWriteExec.next(HashShuffleFileWriteExec.java:107)
> ... 3 more
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)