You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by "Yingyi Bu (JIRA)" <ji...@apache.org> on 2016/06/15 06:36:09 UTC

[jira] [Commented] (ASTERIXDB-1481) Array index out of bound in BTree split during feeds ingestion

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

Yingyi Bu commented on ASTERIXDB-1481:
--------------------------------------

I added some logging to the code as follows.

{noformat}
            if (getLargeFlag()) {
                ((BTreeNSMLeafFrame) rightFrame).growCapacity(extraPageBlockHelper, bufferCache,
                        buf.capacity() - rightFrame.getBuffer().capacity());
                System.out.println("Page re-sizing");
            }

            ByteBuffer right = rightFrame.getBuffer();
            if (buf.capacity() > right.capacity()) {
                System.out.println(
                        "incorrect resizing, buf size: " + buf.capacity() + " right size: " + right.capacity());
            }
            // Copy entire page.
            System.arraycopy(buf.array(), 0, right.array(), 0, buf.capacity());
{noformat}

I got the following numbers before the exception:

{noformat}
incorrect resizing, buf size: 262144 right size: 131072
java.lang.ArrayIndexOutOfBoundsException
{noformat}

It looks the execution doesn't enter the if-block.


> Array index out of bound in BTree split during feeds ingestion
> --------------------------------------------------------------
>
>                 Key: ASTERIXDB-1481
>                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-1481
>             Project: Apache AsterixDB
>          Issue Type: Bug
>            Reporter: Yingyi Bu
>            Assignee: Michael Blow
>            Priority: Critical
>
> I ran into the following exception when ingesting a large dataset.
> {noformat}
> Jun 14, 2016 4:28:06 PM org.apache.hyracks.control.nc.Joblet close
> WARNING: Freeing leaked 131072 bytes
> java.lang.ArrayIndexOutOfBoundsException
> 	at java.lang.System.arraycopy(Native Method)
> 	at org.apache.hyracks.storage.am.btree.frames.BTreeNSMLeafFrame.split(BTreeNSMLeafFrame.java:257)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.performLeafSplit(BTree.java:448)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.insertLeaf(BTree.java:404)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.upsertLeaf(BTree.java:530)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.performOp(BTree.java:771)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.performOp(BTree.java:673)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.insertUpdateOrDelete(BTree.java:312)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.upsert(BTree.java:345)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.access$500(BTree.java:74)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree$BTreeAccessor.upsertIfConditionElseInsert(BTree.java:953)
> 	at org.apache.hyracks.storage.am.lsm.btree.impls.LSMBTree.insert(LSMBTree.java:402)
> 	at org.apache.hyracks.storage.am.lsm.btree.impls.LSMBTree.modify(LSMBTree.java:343)
> 	at org.apache.hyracks.storage.am.lsm.common.impls.LSMHarness.modify(LSMHarness.java:372)
> 	at org.apache.hyracks.storage.am.lsm.common.impls.LSMHarness.forceModify(LSMHarness.java:352)
> 	at org.apache.hyracks.storage.am.lsm.common.impls.LSMTreeIndexAccessor.forceInsert(LSMTreeIndexAccessor.java:158)
> 	at org.apache.asterix.runtime.operators.AsterixLSMPrimaryUpsertOperatorNodePushable.nextFrame(AsterixLSMPrimaryUpsertOperatorNodePushable.java:227)
> 	at org.apache.asterix.external.feed.dataflow.SyncFeedRuntimeInputHandler.nextFrame(SyncFeedRuntimeInputHandler.java:46)
> 	at org.apache.asterix.external.operators.FeedMetaStoreNodePushable.nextFrame(FeedMetaStoreNodePushable.java:158)
> 	at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:349)
> 	at org.apache.hyracks.control.nc.Task.run(Task.java:297)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> 	at java.lang.Thread.run(Thread.java:745)
> org.apache.hyracks.api.exceptions.HyracksDataException: org.apache.hyracks.storage.am.btree.exceptions.BTreeException: java.lang.ArrayIndexOutOfBoundsException
> 	at org.apache.asterix.runtime.operators.AsterixLSMPrimaryUpsertOperatorNodePushable.nextFrame(AsterixLSMPrimaryUpsertOperatorNodePushable.java:239)
> 	at org.apache.asterix.external.feed.dataflow.SyncFeedRuntimeInputHandler.nextFrame(SyncFeedRuntimeInputHandler.java:46)
> 	at org.apache.asterix.external.operators.FeedMetaStoreNodePushable.nextFrame(FeedMetaStoreNodePushable.java:158)
> 	at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:349)
> 	at org.apache.hyracks.control.nc.Task.run(Task.java:297)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> 	at java.lang.Thread.run(Thread.java:745)
> Caused by: org.apache.hyracks.storage.am.btree.exceptions.BTreeException: java.lang.ArrayIndexOutOfBoundsException
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.performOp(BTree.java:827)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.performOp(BTree.java:673)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.insertUpdateOrDelete(BTree.java:312)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.upsert(BTree.java:345)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.access$500(BTree.java:74)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree$BTreeAccessor.upsertIfConditionElseInsert(BTree.java:953)
> 	at org.apache.hyracks.storage.am.lsm.btree.impls.LSMBTree.insert(LSMBTree.java:402)
> 	at org.apache.hyracks.storage.am.lsm.btree.impls.LSMBTree.modify(LSMBTree.java:343)
> 	at org.apache.hyracks.storage.am.lsm.common.impls.LSMHarness.modify(LSMHarness.java:372)
> 	at org.apache.hyracks.storage.am.lsm.common.impls.LSMHarness.forceModify(LSMHarness.java:352)
> 	at org.apache.hyracks.storage.am.lsm.common.impls.LSMTreeIndexAccessor.forceInsert(LSMTreeIndexAccessor.java:158)
> 	at org.apache.asterix.runtime.operators.AsterixLSMPrimaryUpsertOperatorNodePushable.nextFrame(AsterixLSMPrimaryUpsertOperatorNodePushable.java:227)
> 	... 7 more
> Caused by: java.lang.ArrayIndexOutOfBoundsException
> 	at java.lang.System.arraycopy(Native Method)
> 	at org.apache.hyracks.storage.am.btree.frames.BTreeNSMLeafFrame.split(BTreeNSMLeafFrame.java:257)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.performLeafSplit(BTree.java:448)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.insertLeaf(BTree.java:404)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.upsertLeaf(BTree.java:530)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.performOp(BTree.java:771)
> 	... 18 more
> org.apache.hyracks.api.exceptions.HyracksDataException: org.apache.hyracks.api.exceptions.HyracksDataException: org.apache.hyracks.api.exceptions.HyracksDataException: org.apache.hyracks.storage.am.btree.exceptions.BTreeException: java.lang.ArrayIndexOutOfBoundsException
> 	at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:365)
> 	at org.apache.hyracks.control.nc.Task.run(Task.java:297)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> 	at java.lang.Thread.run(Thread.java:745)
> Caused by: org.apache.hyracks.api.exceptions.HyracksDataException: org.apache.hyracks.api.exceptions.HyracksDataException: org.apache.hyracks.storage.am.btree.exceptions.BTreeException: java.lang.ArrayIndexOutOfBoundsException
> 	at org.apache.asterix.external.operators.FeedMetaStoreNodePushable.nextFrame(FeedMetaStoreNodePushable.java:161)
> 	at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:349)
> 	... 4 more
> Caused by: org.apache.hyracks.api.exceptions.HyracksDataException: org.apache.hyracks.storage.am.btree.exceptions.BTreeException: java.lang.ArrayIndexOutOfBoundsException
> 	at org.apache.asterix.runtime.operators.AsterixLSMPrimaryUpsertOperatorNodePushable.nextFrame(AsterixLSMPrimaryUpsertOperatorNodePushable.java:239)
> 	at org.apache.asterix.external.feed.dataflow.SyncFeedRuntimeInputHandler.nextFrame(SyncFeedRuntimeInputHandler.java:46)
> 	at org.apache.asterix.external.operators.FeedMetaStoreNodePushable.nextFrame(FeedMetaStoreNodePushable.java:158)
> 	... 5 more
> Caused by: org.apache.hyracks.storage.am.btree.exceptions.BTreeException: java.lang.ArrayIndexOutOfBoundsException
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.performOp(BTree.java:827)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.performOp(BTree.java:673)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.insertUpdateOrDelete(BTree.java:312)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.upsert(BTree.java:345)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.access$500(BTree.java:74)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree$BTreeAccessor.upsertIfConditionElseInsert(BTree.java:953)
> 	at org.apache.hyracks.storage.am.lsm.btree.impls.LSMBTree.insert(LSMBTree.java:402)
> 	at org.apache.hyracks.storage.am.lsm.btree.impls.LSMBTree.modify(LSMBTree.java:343)
> 	at org.apache.hyracks.storage.am.lsm.common.impls.LSMHarness.modify(LSMHarness.java:372)
> 	at org.apache.hyracks.storage.am.lsm.common.impls.LSMHarness.forceModify(LSMHarness.java:352)
> 	at org.apache.hyracks.storage.am.lsm.common.impls.LSMTreeIndexAccessor.forceInsert(LSMTreeIndexAccessor.java:158)
> 	at org.apache.asterix.runtime.operators.AsterixLSMPrimaryUpsertOperatorNodePushable.nextFrame(AsterixLSMPrimaryUpsertOperatorNodePushable.java:227)
> 	... 7 more
> Caused by: java.lang.ArrayIndexOutOfBoundsException
> 	at java.lang.System.arraycopy(Native Method)
> 	at org.apache.hyracks.storage.am.btree.frames.BTreeNSMLeafFrame.split(BTreeNSMLeafFrame.java:257)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.performLeafSplit(BTree.java:448)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.insertLeaf(BTree.java:404)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.upsertLeaf(BTree.java:530)
> 	at org.apache.hyracks.storage.am.btree.impls.BTree.performOp(BTree.java:771)
> 	... 18 more
> org.apache.hyracks.api.exceptions.HyracksDataException: java.lang.InterruptedException
> 	at org.apache.hyracks.api.rewriter.runtime.SuperActivityOperatorNodePushable.runInParallel(SuperActivityOperatorNodePushable.java:218)
> 	at org.apache.hyracks.api.rewriter.runtime.SuperActivityOperatorNodePushable.initialize(SuperActivityOperatorNodePushable.java:83)
> 	at org.apache.hyracks.control.nc.Task.run(Task.java:263)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> 	at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.InterruptedException
> 	at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:404)
> 	at java.util.concurrent.FutureTask.get(FutureTask.java:191)
> 	at org.apache.hyracks.api.rewriter.runtime.SuperActivityOperatorNodePushable.runInParallel(SuperActivityOperatorNodePushable.java:212)
> 	... 5 more
> {noformat}



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