[ https://issues.apache.org/jira/browse/ASTERIXDB-2338?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Taewoo Kim closed ASTERIXDB-2338. --------------------------------- Resolution: Fixed > IllgalArgumentException happens when a page of an inverted list is read > concurrently > ------------------------------------------------------------------------------------ > > Key: ASTERIXDB-2338 > URL: https://issues.apache.org/jira/browse/ASTERIXDB-2338 > Project: Apache AsterixDB > Issue Type: Bug > Reporter: Taewoo Kim > Assignee: Taewoo Kim > Priority: Major > > If a page of an inverted list is read concurrently at the same time by > multiple threads, the following exceptions happens. This is because a > concurrency control when reading a buffer in the buffer cache is not > implemented. > {code:java} > org.apache.hyracks.api.exceptions.HyracksDataException: > java.lang.IllegalArgumentException > at > org.apache.hyracks.api.exceptions.HyracksDataException.create(HyracksDataException.java:51) > ~[hyracks-api-0.3.4-SNAPSHOT.jar:0.3.4-SNAPSHOT] > at > org.apache.hyracks.storage.am.common.dataflow.IndexSearchOperatorNodePushable.nextFrame(IndexSearchOperatorNodePushable.java:247) > ~[hyracks-storage-am-common-0.3.4-SNAPSHOT.jar:0.3.4-SNAPSHOT] > at > org.apache.hyracks.dataflow.common.comm.io.AbstractFrameAppender.write(AbstractFrameAppender.java:93) > ~[hyracks-dataflow-common-0.3.4-SNAPSHOT.jar:0.3.4-SNAPSHOT] > at > org.apache.hyracks.algebricks.runtime.operators.base.AbstractOneInputOneOutputOneFramePushRuntime.flushAndReset(AbstractOneInputOneOutputOneFramePushRuntime.java:78) > ~[algebricks-runtime-0.3.4-SNAPSHOT.jar:0.3.4-SNAPSHOT] > at > org.apache.hyracks.algebricks.runtime.operators.base.AbstractOneInputOneOutputOneFramePushRuntime.flushIfNotFailed(AbstractOneInputOneOutputOneFramePushRuntime.java:84) > ~[algebricks-runtime-0.3.4-SNAPSHOT.jar:0.3.4-SNAPSHOT] > at > org.apache.hyracks.algebricks.runtime.operators.base.AbstractOneInputOneOutputOneFramePushRuntime.close(AbstractOneInputOneOutputOneFramePushRuntime.java:56) > ~[algebricks-runtime-0.3.4-SNAPSHOT.jar:0.3.4-SNAPSHOT] > at > org.apache.hyracks.algebricks.runtime.operators.std.AssignRuntimeFactory$1.close(AssignRuntimeFactory.java:119) > ~[algebricks-runtime-0.3.4-SNAPSHOT.jar:0.3.4-SNAPSHOT] > at > org.apache.hyracks.algebricks.runtime.operators.std.EmptyTupleSourceRuntimeFactory$1.close(EmptyTupleSourceRuntimeFactory.java:65) > ~[algebricks-runtime-0.3.4-SNAPSHOT.jar:0.3.4-SNAPSHOT] > at > org.apache.hyracks.algebricks.runtime.operators.meta.AlgebricksMetaOperatorDescriptor$SourcePushRuntime.initialize(AlgebricksMetaOperatorDescriptor.java:111) > ~[algebricks-runtime-0.3.4-SNAPSHOT.jar:0.3.4-SNAPSHOT] > at > org.apache.hyracks.api.rewriter.runtime.SuperActivityOperatorNodePushable$$Lambda$74/144499656.run(Unknown > Source) ~[?:?] > at > org.apache.hyracks.api.rewriter.runtime.SuperActivityOperatorNodePushable.lambda$runInParallel$9(SuperActivityOperatorNodePushable.java:204) > ~[hyracks-api-0.3.4-SNAPSHOT.jar:0.3.4-SNAPSHOT] > at > org.apache.hyracks.api.rewriter.runtime.SuperActivityOperatorNodePushable$$Lambda$76/2082033757.call(Unknown > Source) ~[?:?] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > ~[?:1.8.0] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > ~[?:1.8.0] > at java.lang.Thread.run(Thread.java:744) ~[?:1.8.0] > Caused by: java.lang.IllegalArgumentException > at java.nio.Buffer.position(Buffer.java:244) ~[?:1.8.0] > at java.nio.HeapByteBuffer.put(HeapByteBuffer.java:209) ~[?:1.8.0] > at > org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.FixedSizeElementInvertedListCursor.loadPages(FixedSizeElementInvertedListCursor.java:225) > ~[hyracks-storage-am-lsm-invertedindex-0.3.4-SNAPSHOT.jar:0.3.4-SNAPSHOT] > at > org.apache.hyracks.storage.am.lsm.invertedindex.search.TOccurrenceSearcher.search(TOccurrenceSearcher.java:72) > ~[hyracks-storage-am-lsm-invertedindex-0.3.4-SNAPSHOT.jar:0.3.4-SNAPSHOT] > at > org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.OnDiskInvertedIndex$OnDiskInvertedIndexAccessor.search(OnDiskInvertedIndex.java:453) > ~[hyracks-storage-am-lsm-invertedindex-0.3.4-SNAPSHOT.jar:0.3.4-SNAPSHOT] > at > org.apache.hyracks.storage.am.lsm.invertedindex.impls.LSMInvertedIndexSearchCursor.doHasNext(LSMInvertedIndexSearchCursor.java:159) > ~[hyracks-storage-am-lsm-invertedindex-0.3.4-SNAPSHOT.jar:0.3.4-SNAPSHOT] > at > org.apache.hyracks.storage.common.EnforcedIndexCursor.hasNext(EnforcedIndexCursor.java:69) > ~[hyracks-storage-common-0.3.4-SNAPSHOT.jar:0.3.4-SNAPSHOT] > at > org.apache.hyracks.storage.am.common.dataflow.IndexSearchOperatorNodePushable.writeSearchResults(IndexSearchOperatorNodePushable.java:203) > ~[hyracks-storage-am-common-0.3.4-SNAPSHOT.jar:0.3.4-SNAPSHOT] > at > org.apache.hyracks.storage.am.common.dataflow.IndexSearchOperatorNodePushable.nextFrame(IndexSearchOperatorNodePushable.java:244) > ~[hyracks-storage-am-common-0.3.4-SNAPSHOT.jar:0.3.4-SNAPSHOT] > ... 14 more{code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)