[
https://issues.apache.org/jira/browse/ASTERIXDB-1938?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16045160#comment-16045160
]
Dmitry Lychagin commented on ASTERIXDB-1938:
--------------------------------------------
This seems to be caused by https://asterix-gerrit.ics.uci.edu/#/c/1773/
> AppendOnlyLinkedMetadataPageManager.put() is called after close(). HYR0012 is
> thrown
> ------------------------------------------------------------------------------------
>
> Key: ASTERIXDB-1938
> URL: https://issues.apache.org/jira/browse/ASTERIXDB-1938
> Project: Apache AsterixDB
> Issue Type: Bug
> Components: Storage
> Reporter: Dmitry Lychagin
> Assignee: Chen Luo
>
> We're getting this exception:
> rg.apache.hyracks.api.exceptions.HyracksDataException: HYR0012: Invalid
> attempt to write to a flushed append only metadata page
> at
> org.apache.hyracks.api.exceptions.HyracksDataException.create(HyracksDataException.java:49)
> at
> org.apache.hyracks.storage.am.common.freepage.AppendOnlyLinkedMetadataPageManager.put(AppendOnlyLinkedMetadataPageManager.java:311)
> at
> org.apache.hyracks.storage.am.lsm.common.impls.DiskComponentMetadata.put(DiskComponentMetadata.java:38)
> at
> org.apache.asterix.common.ioopcallbacks.AbstractLSMIOOperationCallback.putLSNIntoMetadata(AbstractLSMIOOperationCallback.java:105)
> at
> org.apache.asterix.common.ioopcallbacks.AbstractLSMIOOperationCallback.afterOperation(AbstractLSMIOOperationCallback.java:188)
> at
> org.apache.hyracks.storage.am.lsm.common.impls.LSMHarness.flush(LSMHarness.java:503)
> at
> org.apache.hyracks.storage.am.lsm.common.impls.LSMTreeIndexAccessor.flush(LSMTreeIndexAccessor.java:121)
> at
> org.apache.hyracks.storage.am.lsm.common.impls.FlushOperation.call(FlushOperation.java:42)
> at
> org.apache.hyracks.storage.am.lsm.common.impls.FlushOperation.call(FlushOperation.java:30)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> 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)
> However at that time the AppendOnlyLinkedMetadataPageManager is already
> closed.
> The stack trace for the close() method invocation is the following:
> at
> org.apache.hyracks.storage.am.common.freepage.AppendOnlyLinkedMetadataPageManager.close(AppendOnlyLinkedMetadataPageManager.java:216)
> at
> org.apache.hyracks.storage.am.common.impls.AbstractTreeIndex.deactivate(AbstractTreeIndex.java:163)
> at
> org.apache.hyracks.storage.am.lsm.common.impls.AbstractLSMDiskComponentBulkLoader.cleanupArtifacts(AbstractLSMDiskComponentBulkLoader.java:170)
> at
> org.apache.hyracks.storage.am.lsm.common.impls.AbstractLSMDiskComponentBulkLoader.end(AbstractLSMDiskComponentBulkLoader.java:158)
> at
> org.apache.hyracks.storage.am.lsm.btree.impls.LSMBTree.flush(LSMBTree.java:357)
> at
> org.apache.hyracks.storage.am.lsm.common.impls.LSMHarness.flush(LSMHarness.java:502)
> at
> org.apache.hyracks.storage.am.lsm.common.impls.LSMTreeIndexAccessor.flush(LSMTreeIndexAccessor.java:121)
> at
> org.apache.hyracks.storage.am.lsm.common.impls.FlushOperation.call(FlushOperation.java:42)
> at
> org.apache.hyracks.storage.am.lsm.common.impls.FlushOperation.call(FlushOperation.java:30)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> 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)
> So AppendOnlyLinkedMetadataPageManager.close() is called from LSMHarness:502
> (flush), then the next line (LSMHarness:503) calls the callback which tries
> to write data into the closed page manager. At that point its
> 'confiscatedPage' is 'null' and therefore HYR0012 is thrown
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)