You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by "Abdullah Alamoudi (JIRA)" <ji...@apache.org> on 2015/10/05 21:29:26 UTC

[jira] [Commented] (ASTERIXDB-1126) Secondary Index on External datasets failure

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

Abdullah Alamoudi commented on ASTERIXDB-1126:
----------------------------------------------

Interesting.
I am not sure when this creeped in as I have gone through similar scenarios
before with no problems.

I will fix it immediately and add a test case for it.



> Secondary Index on External datasets failure
> --------------------------------------------
>
>                 Key: ASTERIXDB-1126
>                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-1126
>             Project: Apache AsterixDB
>          Issue Type: Bug
>          Components: AsterixDB
>            Reporter: Pouria
>            Assignee: Abdullah Alamoudi
>            Priority: Critical
>
> -) Using HDFS 2.6 as the external data source
> -) Queries run based on TPCH schema
> steps:
> 1- Create and asterix instance
> 2- Create an external dataset (data resides in HDFS as text CSV files)
> 3- Create a secondary index on that dataset
> 4- ** stop the asterix instance and start it again ** (This step is important to reproduce)
> 5- Run a selection with a predicate that makes system pick the secondary index
> 6- Query crashes immediately with an NPE at the top level
> -) Sample DDL:
> create type NationType as {
>   n_nationkey: int32,
>   n_name: string,
>   n_regionkey: int32,
>   n_comment: string
> }
> create type RegionType as {
>   r_regionkey: int32,
>   r_name: string,
>   r_comment: string
> }
> create external dataset Nation('NationType') using hdfs
> (("hdfs"="hdfs://128.XX.XX.XX:9000"),("path"="/PATH/ON/HDFS/nation"),("input-format"="text-input-format"),("format"="delimited-text"),("delimiter"="|"));
> create external dataset Region('RegionType') using hdfs
> (("hdfs"="hdfs://128.XX.XX.XX:9000"),("path"="/PATH/ON/HDFS/region"),("input-format"="text-input-format"),("format"="delimited-text"),("delimiter"="|"));
> create index nation_fk_region on Nation(n_regionkey);
> -) Sample Query:
> for $t in dataset Nation
> where $t.n_regionkey < 4
> return $t
> -) Error on the NC logs:
> java.lang.NullPointerException
> 	at org.apache.hyracks.storage.am.common.tuples.TypeAwareTupleReference.resetByTupleOffset(TypeAwareTupleReference.java:57)
> 	at org.apache.hyracks.storage.am.lsm.btree.tuples.LSMBTreeTupleReference.resetByTupleOffset(LSMBTreeTupleReference.java:70)
> 	at org.apache.hyracks.storage.am.lsm.btree.tuples.LSMBTreeTupleReference.resetByTupleIndex(LSMBTreeTupleReference.java:75)
> 	at org.apache.hyracks.storage.am.btree.frames.OrderedSlotManager.findTupleIndex(OrderedSlotManager.java:44)
> 	at org.apache.hyracks.storage.am.btree.frames.BTreeNSMLeafFrame.findTupleIndex(BTreeNSMLeafFrame.java:257)
> 	at org.apache.hyracks.storage.am.btree.impls.BTreeRangeSearchCursor.getHighKeyIndex(BTreeRangeSearchCursor.java:234)
> 	at org.apache.hyracks.storage.am.btree.impls.BTreeRangeSearchCursor.open(BTreeRangeSearchCursor.java:290)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.performOp(BTree.java:750)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.search(BTree.java:202)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.access$600(BTree.java:74)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree$BTreeAccessor.search(BTree.java:914)
> 	at org.apache.hyracks.storage.am.lsm.btree.impls.LSMBTreeWithBuddySearchCursor.searchNextCursor(LSMBTreeWithBuddySearchCursor.java:69)
> 	at org.apache.hyracks.storage.am.lsm.btree.impls.LSMBTreeWithBuddySearchCursor.open(LSMBTreeWithBuddySearchCursor.java:122)
> 	at org.apache.hyracks.storage.am.lsm.btree.impls.ExternalBTreeWithBuddy.search(ExternalBTreeWithBuddy.java:336)
> 	at org.apache.hyracks.storage.am.lsm.common.impls.ExternalIndexHarness.search(ExternalIndexHarness.java:173)
> 	at org.apache.hyracks.storage.am.lsm.common.impls.LSMTreeIndexAccessor.search(LSMTreeIndexAccessor.java:99)
> 	at org.apache.hyracks.storage.am.common.dataflow.IndexSearchOperatorNodePushable.nextFrame(IndexSearchOperatorNodePushable.java:185)
> 	at org.apache.hyracks.dataflow.common.comm.io.AbstractFrameAppender.flush(AbstractFrameAppender.java:83)
> 	at org.apache.hyracks.algebricks.runtime.operators.base.AbstractOneInputOneOutputOneFramePushRuntime.flushAndReset(AbstractOneInputOneOutputOneFramePushRuntime.java:56)
> 	at org.apache.hyracks.algebricks.runtime.operators.base.AbstractOneInputOneOutputOneFramePushRuntime.flushIfNotFailed(AbstractOneInputOneOutputOneFramePushRuntime.java:62)
> 	at org.apache.hyracks.algebricks.runtime.operators.base.AbstractOneInputOneOutputOneFramePushRuntime.close(AbstractOneInputOneOutputOneFramePushRuntime.java:50)
> 	at org.apache.hyracks.algebricks.runtime.operators.std.EmptyTupleSourceRuntimeFactory$1.open(EmptyTupleSourceRuntimeFactory.java:52)
> 	at org.apache.hyracks.algebricks.runtime.operators.meta.AlgebricksMetaOperatorDescriptor$1.initialize(AlgebricksMetaOperatorDescriptor.java:104)
> 	at org.apache.hyracks.api.rewriter.runtime.SuperActivityOperatorNodePushable.initialize(SuperActivityOperatorNodePushable.java:85)
> 	at org.apache.hyracks.control.nc.Task.run(Task.java:255)
> 	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:745)
> org.apache.hyracks.api.exceptions.HyracksDataException: org.apache.hyracks.api.exceptions.HyracksDataException: org.apache.hyracks.storage.am.btree.exceptions.BTreeException: java.lang.NullPointerException
> 	at org.apache.hyracks.storage.am.common.dataflow.IndexSearchOperatorNodePushable.nextFrame(IndexSearchOperatorNodePushable.java:189)
> 	at org.apache.hyracks.dataflow.common.comm.io.AbstractFrameAppender.flush(AbstractFrameAppender.java:83)
> 	at org.apache.hyracks.algebricks.runtime.operators.base.AbstractOneInputOneOutputOneFramePushRuntime.flushAndReset(AbstractOneInputOneOutputOneFramePushRuntime.java:56)
> 	at org.apache.hyracks.algebricks.runtime.operators.base.AbstractOneInputOneOutputOneFramePushRuntime.flushIfNotFailed(AbstractOneInputOneOutputOneFramePushRuntime.java:62)
> 	at org.apache.hyracks.algebricks.runtime.operators.base.AbstractOneInputOneOutputOneFramePushRuntime.close(AbstractOneInputOneOutputOneFramePushRuntime.java:50)
> 	at org.apache.hyracks.algebricks.runtime.operators.std.EmptyTupleSourceRuntimeFactory$1.open(EmptyTupleSourceRuntimeFactory.java:52)
> 	at org.apache.hyracks.algebricks.runtime.operators.meta.AlgebricksMetaOperatorDescriptor$1.initialize(AlgebricksMetaOperatorDescriptor.java:104)
> 	at org.apache.hyracks.api.rewriter.runtime.SuperActivityOperatorNodePushable.initialize(SuperActivityOperatorNodePushable.java:85)
> 	at org.apache.hyracks.control.nc.Task.run(Task.java:255)
> 	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:745)
> Caused by: org.apache.hyracks.api.exceptions.HyracksDataException: org.apache.hyracks.storage.am.btree.exceptions.BTreeException: java.lang.NullPointerException
> 	at org.apache.hyracks.storage.am.lsm.btree.impls.LSMBTreeWithBuddySearchCursor.searchNextCursor(LSMBTreeWithBuddySearchCursor.java:71)
> 	at org.apache.hyracks.storage.am.lsm.btree.impls.LSMBTreeWithBuddySearchCursor.open(LSMBTreeWithBuddySearchCursor.java:122)
> 	at org.apache.hyracks.storage.am.lsm.btree.impls.ExternalBTreeWithBuddy.search(ExternalBTreeWithBuddy.java:336)
> 	at org.apache.hyracks.storage.am.lsm.common.impls.ExternalIndexHarness.search(ExternalIndexHarness.java:173)
> 	at org.apache.hyracks.storage.am.lsm.common.impls.LSMTreeIndexAccessor.search(LSMTreeIndexAccessor.java:99)
> 	at org.apache.hyracks.storage.am.common.dataflow.IndexSearchOperatorNodePushable.nextFrame(IndexSearchOperatorNodePushable.java:185)
> 	... 11 more
> Caused by: org.apache.hyracks.storage.am.btree.exceptions.BTreeException: java.lang.NullPointerException
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.performOp(BTree.java:789)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.search(BTree.java:202)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.access$600(BTree.java:74)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree$BTreeAccessor.search(BTree.java:914)
> 	at org.apache.hyracks.storage.am.lsm.btree.impls.LSMBTreeWithBuddySearchCursor.searchNextCursor(LSMBTreeWithBuddySearchCursor.java:69)
> 	... 16 more
> Caused by: java.lang.NullPointerException
> 	at org.apache.hyracks.storage.am.common.tuples.TypeAwareTupleReference.resetByTupleOffset(TypeAwareTupleReference.java:57)
> 	at org.apache.hyracks.storage.am.lsm.btree.tuples.LSMBTreeTupleReference.resetByTupleOffset(LSMBTreeTupleReference.java:70)
> 	at org.apache.hyracks.storage.am.lsm.btree.tuples.LSMBTreeTupleReference.resetByTupleIndex(LSMBTreeTupleReference.java:75)
> 	at org.apache.hyracks.storage.am.btree.frames.OrderedSlotManager.findTupleIndex(OrderedSlotManager.java:44)
> 	at org.apache.hyracks.storage.am.btree.frames.BTreeNSMLeafFrame.findTupleIndex(BTreeNSMLeafFrame.java:257)
> 	at org.apache.hyracks.storage.am.btree.impls.BTreeRangeSearchCursor.getHighKeyIndex(BTreeRangeSearchCursor.java:234)
> 	at org.apache.hyracks.storage.am.btree.impls.BTreeRangeSearchCursor.open(BTreeRangeSearchCursor.java:290)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.performOp(BTree.java:750)
> 	... 20 more
> Oct 05, 2015 11:33:11 AM org.apache.hyracks.control.nc.Joblet close



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