[ 
https://issues.apache.org/jira/browse/ASTERIXDB-1354?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15273667#comment-15273667
 ] 

Murtadha Hubail commented on ASTERIXDB-1354:
--------------------------------------------

[~buyingyi],
As we discussed, the reported issue was fixed with the patch in ASTERIXDB-1377. 
It doesn't happen on the current master. However, the reported exception is 
actually triggered by another exception 
(java.lang.ArrayIndexOutOfBoundsException) which happens during the query. I 
traced the issue and I think the reason behind it is that during the query 
compilation an invalid lowKeyIndexes with value -1 is being assigned.

The complete stacktrace is below:
Caused by: org.apache.hyracks.api.exceptions.HyracksDataException: 
org.apache.hyracks.storage.am.btree.exceptions.BTreeException: 
java.lang.ArrayIndexOutOfBoundsException: -7
        at 
org.apache.hyracks.storage.am.common.dataflow.IndexSearchOperatorNodePushable.nextFrame(IndexSearchOperatorNodePushable.java:186)
        at 
org.apache.hyracks.dataflow.common.comm.io.AbstractFrameAppender.write(AbstractFrameAppender.java:93)
        at 
org.apache.hyracks.algebricks.runtime.operators.base.AbstractOneInputOneOutputOneFramePushRuntime.flushAndReset(AbstractOneInputOneOutputOneFramePushRuntime.java:63)
        at 
org.apache.hyracks.algebricks.runtime.operators.base.AbstractOneInputOneOutputOneFramePushRuntime.flushIfNotFailed(AbstractOneInputOneOutputOneFramePushRuntime.java:69)
        at 
org.apache.hyracks.algebricks.runtime.operators.base.AbstractOneInputOneOutputOneFramePushRuntime.close(AbstractOneInputOneOutputOneFramePushRuntime.java:55)
        at 
org.apache.hyracks.algebricks.runtime.operators.base.AbstractOneInputOneOutputOneFramePushRuntime.close(AbstractOneInputOneOutputOneFramePushRuntime.java:57)
        at 
org.apache.hyracks.algebricks.runtime.operators.std.AssignRuntimeFactory$1.close(AssignRuntimeFactory.java:122)
        at 
org.apache.hyracks.algebricks.runtime.operators.meta.AlgebricksMetaOperatorDescriptor$2.close(AlgebricksMetaOperatorDescriptor.java:153)
        at 
org.apache.hyracks.dataflow.std.misc.SplitOperatorDescriptor$SplitterMaterializerActivityNode$1.close(SplitOperatorDescriptor.java:160)
        ... 11 more
Caused by: org.apache.hyracks.storage.am.btree.exceptions.BTreeException: 
java.lang.ArrayIndexOutOfBoundsException: -7
        at 
org.apache.hyracks.storage.am.btree.impls.BTree.performOp(BTree.java:777)
        at 
org.apache.hyracks.storage.am.btree.impls.BTree.search(BTree.java:190)
        at 
org.apache.hyracks.storage.am.btree.impls.BTree.access$6(BTree.java:174)
        at 
org.apache.hyracks.storage.am.btree.impls.BTree$BTreeAccessor.search(BTree.java:916)
        at 
org.apache.hyracks.storage.am.lsm.btree.impls.LSMBTreeRangeSearchCursor.open(LSMBTreeRangeSearchCursor.java:225)
        at 
org.apache.hyracks.storage.am.lsm.btree.impls.LSMBTreeSearchCursor.open(LSMBTreeSearchCursor.java:81)
        at 
org.apache.hyracks.storage.am.lsm.btree.impls.LSMBTree.search(LSMBTree.java:402)
        at 
org.apache.hyracks.storage.am.lsm.common.impls.LSMHarness.search(LSMHarness.java:393)
        at 
org.apache.hyracks.storage.am.lsm.common.impls.LSMTreeIndexAccessor.search(LSMTreeIndexAccessor.java:100)
        at 
org.apache.hyracks.storage.am.common.dataflow.IndexSearchOperatorNodePushable.nextFrame(IndexSearchOperatorNodePushable.java:182)
        ... 19 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: -7
        at 
org.apache.hyracks.dataflow.common.util.IntSerDeUtils.getInt(IntSerDeUtils.java:25)
        at 
org.apache.hyracks.dataflow.common.comm.io.FrameTupleAccessor.getFieldStartOffset(FrameTupleAccessor.java:97)
        at 
org.apache.hyracks.storage.am.common.tuples.PermutingFrameTupleReference.getFieldStart(PermutingFrameTupleReference.java:51)
        at 
org.apache.hyracks.storage.am.common.ophelpers.MultiComparator.compare(MultiComparator.java:37)
        at 
org.apache.hyracks.storage.am.btree.frames.OrderedSlotManager.findTupleIndex(OrderedSlotManager.java:45)
        at 
org.apache.hyracks.storage.am.btree.frames.BTreeNSMInteriorFrame.getChildPageId(BTreeNSMInteriorFrame.java:332)
        at 
org.apache.hyracks.storage.am.btree.impls.BTree.performOp(BTree.java:623)

> Foreign key select error of UNION
> ---------------------------------
>
>                 Key: ASTERIXDB-1354
>                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-1354
>             Project: Apache AsterixDB
>          Issue Type: Bug
>          Components: AsterixDB
>         Environment: General Environment.
>            Reporter: Wenhai
>            Assignee: Yingyi Bu
>              Labels: patch
>
> If we set up a composite primary key (i.e. LineItem(l_orderkey, 
> l_linenumber)) referring to another table (i.e. Orders(o_orderkey)), the same 
> selection condition will introduce a readCount error.
> Schemas
> {noformat}
> use dataverse tpch;
> create type LineItemType as closed {
>   l_orderkey: int32, 
>   l_partkey: int32, 
>   l_suppkey: int32, 
>   l_linenumber: int32, 
>   l_quantity: int32, 
>   l_extendedprice: double,
>   l_discount: double, 
>   l_tax: double,
>   l_returnflag: string, 
>   l_linestatus: string, 
>   l_shipdate: string,
>   l_commitdate: string, 
>   l_receiptdate: string, 
>   l_shipinstruct: string, 
>   l_shipmode: string, 
>   l_comment: string
> }
> create type OrderType as closed {
>   o_orderkey: int32, 
>   o_custkey: int32, 
>   o_orderstatus: string, 
>   o_totalprice: double, 
>   o_orderdate: string, 
>   o_orderpriority: string,
>   o_clerk: string, 
>   o_shippriority: int32, 
>   o_comment: string
> }
> create dataset LineItem(LineItemType) primary key l_orderkey, l_linenumber;
> create dataset Orders(OrderType) primary key o_orderkey;
> use dataverse tpch;
> load dataset LineItem 
> using localfs
> (("path"="asterix_nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|"));
> load dataset Orders 
> using localfs
> (("path"="asterix_nc2://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|"));
> {noformat}
> Query:
> {noformat}
> use dataverse tpch;
> let $l := for $r in dataset LineItem where $r.l_orderkey = 2
> return $r.l_linenumber
> let $o := for $s in dataset Orders where $s.o_orderkey =2
> return $s.o_custkey
> let $c := $l union $o
> return $c
> {noformat}
> Error:
> {noformat}
> Invalid LSM disk component readerCount: -1 [IllegalStateException]
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to