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

Abdullah Alamoudi commented on ASTERIXDB-2414:
----------------------------------------------

So, The issue has two parts:
1. When creating a merge file, we made a mistake with the name replacing the 
start with the end. Due to this, when starting up, we by mistake removes the 
merged component and not its input. This is fixed by simply fixing the name.
2. However, we found that when removing a subsumed component, we don't remove 
its files from the buffer cache.

This is why a re-attempted merge fails.

> FileManager throws file is already mapped on create
> ---------------------------------------------------
>
>                 Key: ASTERIXDB-2414
>                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-2414
>             Project: Apache AsterixDB
>          Issue Type: Bug
>          Components: *DB - AsterixDB, STO - Storage
>    Affects Versions: 0.9.4
>            Reporter: Wail Alkowaileet
>            Assignee: Abdullah Alamoudi
>            Priority: Major
>
> The bug appears in recovery after a hard shutdown during a merge operation.
> {noformat}
> org.apache.hyracks.api.exceptions.HyracksDataException: HYR0081: File 
> /Users/wail/asterix-branches/compactor/asterixdb/asterixdb/asterix-app/target/io/dir/asterix_nc1/../asterix-server/target/tmp/asterix_nc1/iodevice2/storage/partition_1/CompactorDataverse/Compactor/0/Compactor/2018-07-16-13-04-17-603_2018-07-16-13-04-09-026_b
>  is already mapped
>       at 
> org.apache.hyracks.api.exceptions.HyracksDataException.create(HyracksDataException.java:60)
>  ~[classes/:?]
>       at 
> org.apache.hyracks.storage.common.file.FileMapManager.registerFile(FileMapManager.java:76)
>  ~[classes/:?]
>       at 
> org.apache.hyracks.storage.common.buffercache.BufferCache.createFile(BufferCache.java:815)
>  ~[classes/:?]
>       at 
> org.apache.hyracks.storage.am.common.impls.AbstractTreeIndex.create(AbstractTreeIndex.java:83)
>  ~[classes/:?]
>       at 
> org.apache.hyracks.storage.am.lsm.common.impls.AbstractLSMDiskComponent.activate(AbstractLSMDiskComponent.java:169)
>  ~[classes/:?]
>       at 
> org.apache.hyracks.storage.am.lsm.common.api.AbstractLSMWithBloomFilterDiskComponent.activate(AbstractLSMWithBloomFilterDiskComponent.java:54)
>  ~[classes/:?]
>       at 
> org.apache.hyracks.storage.am.lsm.common.impls.AbstractLSMIndex.createDiskComponent(AbstractLSMIndex.java:536)
>  ~[classes/:?]
>       at 
> org.apache.hyracks.storage.am.lsm.btree.impls.LSMBTree.doMerge(LSMBTree.java:336)
>  ~[classes/:?]
>       at 
> org.apache.hyracks.storage.am.lsm.common.impls.AbstractLSMIndex.merge(AbstractLSMIndex.java:857)
>  ~[classes/:?]
>       at 
> org.apache.hyracks.storage.am.lsm.common.impls.LSMHarness.doIo(LSMHarness.java:536)
>  [classes/:?]
>       at 
> org.apache.hyracks.storage.am.lsm.common.impls.LSMHarness.merge(LSMHarness.java:575)
>  [classes/:?]
>       at 
> org.apache.hyracks.storage.am.lsm.common.impls.LSMTreeIndexAccessor.merge(LSMTreeIndexAccessor.java:127)
>  [classes/:?]
>       at 
> org.apache.hyracks.storage.am.lsm.common.impls.MergeOperation.call(MergeOperation.java:45)
>  [classes/:?]
>       at 
> org.apache.hyracks.storage.am.lsm.common.impls.MergeOperation.call(MergeOperation.java:1)
>  [classes/:?]
>       at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_45]
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>  [?:1.8.0_45]
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>  [?:1.8.0_45]
>       at java.lang.Thread.run(Thread.java:745) [?:1.8.0_45]
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to