[ https://issues.apache.org/jira/browse/ASTERIXDB-1126?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Abdullah Alamoudi closed ASTERIXDB-1126. ---------------------------------------- > 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: *DB - 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 (v7.6.3#76005)