abdullah alamoudi has uploaded a new change for review. https://asterix-gerrit.ics.uci.edu/1930
Change subject: [ASTERIXDB-1990][ASTERIXDB-1991][STO] Log deletion failure ...................................................................... [ASTERIXDB-1990][ASTERIXDB-1991][STO] Log deletion failure - user model changes: no - storage format changes: no - interface changes: no Details: - Instead of failing operations due to file deletion exceptions, we will log the failure in merges and re-attempt deletions on index deletion. index deletion will only fail after 5 consicutive failed attempts. Change-Id: I843de8b26c181205e43f4eabe22a7c43f3ebfcbc --- M asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DatasetUtil.java M asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/ExternalIndexingOperations.java M asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryTreeIndexOperationsHelper.java M hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/AbstractBTreeOperatorTest.java M hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/rtree/AbstractRTreeOperatorTest.java M hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/api/IIndexDataflowHelper.java M hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexDataflowHelper.java M hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexDropOperatorDescriptor.java M hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexDropOperatorNodePushable.java M hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMHarness.java 10 files changed, 87 insertions(+), 32 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/30/1930/1 diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DatasetUtil.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DatasetUtil.java index e4a6ca8..7cb50fe 100644 --- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DatasetUtil.java +++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DatasetUtil.java @@ -251,7 +251,8 @@ metadataProvider.getSplitProviderAndConstraints(dataset); IIndexDataflowHelperFactory indexHelperFactory = new IndexDataflowHelperFactory( metadataProvider.getStorageComponentProvider().getStorageManager(), splitsAndConstraint.first); - IndexDropOperatorDescriptor primaryBtreeDrop = new IndexDropOperatorDescriptor(specPrimary, indexHelperFactory); + IndexDropOperatorDescriptor primaryBtreeDrop = + new IndexDropOperatorDescriptor(specPrimary, indexHelperFactory, 5); AlgebricksPartitionConstraintHelper.setPartitionConstraintInJobSpec(specPrimary, primaryBtreeDrop, splitsAndConstraint.second); specPrimary.addRoot(primaryBtreeDrop); @@ -266,7 +267,7 @@ metadataProvider.getSplitProviderAndConstraints(dataset, indexName); IIndexDataflowHelperFactory indexHelperFactory = new IndexDataflowHelperFactory( metadataProvider.getStorageComponentProvider().getStorageManager(), splitsAndConstraint.first); - IndexDropOperatorDescriptor btreeDrop = new IndexDropOperatorDescriptor(spec, indexHelperFactory); + IndexDropOperatorDescriptor btreeDrop = new IndexDropOperatorDescriptor(spec, indexHelperFactory, 5); AlgebricksPartitionConstraintHelper.setPartitionConstraintInJobSpec(spec, btreeDrop, splitsAndConstraint.second); spec.addRoot(btreeDrop); diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/ExternalIndexingOperations.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/ExternalIndexingOperations.java index 5bb0aa9..f19c01a 100644 --- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/ExternalIndexingOperations.java +++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/ExternalIndexingOperations.java @@ -70,8 +70,8 @@ import org.apache.hyracks.storage.am.common.api.IIndexBuilderFactory; import org.apache.hyracks.storage.am.common.build.IndexBuilderFactory; import org.apache.hyracks.storage.am.common.dataflow.IIndexDataflowHelperFactory; -import org.apache.hyracks.storage.am.common.dataflow.IndexDropOperatorDescriptor; import org.apache.hyracks.storage.am.common.dataflow.IndexDataflowHelperFactory; +import org.apache.hyracks.storage.am.common.dataflow.IndexDropOperatorDescriptor; import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicyFactory; import org.apache.hyracks.storage.common.IResourceFactory; import org.apache.hyracks.storage.common.IStorageManager; @@ -203,8 +203,8 @@ mergePolicyFactory, mergePolicyProperties); IIndexBuilderFactory indexBuilderFactory = new IndexBuilderFactory(storageComponentProvider.getStorageManager(), secondaryFileSplitProvider, resourceFactory, !dataset.isTemp()); - IIndexDataflowHelperFactory dataflowHelperFactory = - new IndexDataflowHelperFactory(storageComponentProvider.getStorageManager(), secondaryFileSplitProvider); + IIndexDataflowHelperFactory dataflowHelperFactory = new IndexDataflowHelperFactory( + storageComponentProvider.getStorageManager(), secondaryFileSplitProvider); ExternalFilesIndexCreateOperatorDescriptor externalFilesOp = new ExternalFilesIndexCreateOperatorDescriptor( spec, indexBuilderFactory, dataflowHelperFactory, externalFilesSnapshot); AlgebricksPartitionConstraintHelper.setPartitionConstraintInJobSpec(spec, externalFilesOp, @@ -221,8 +221,8 @@ Pair<IFileSplitProvider, AlgebricksPartitionConstraint> secondarySplitsAndConstraint = metadataProvider .getSplitProviderAndConstraints(dataset, IndexingConstants.getFilesIndexName(dataset.getDatasetName())); IFileSplitProvider secondaryFileSplitProvider = secondarySplitsAndConstraint.first; - IIndexDataflowHelperFactory dataflowHelperFactory = - new IndexDataflowHelperFactory(storageComponentProvider.getStorageManager(), secondaryFileSplitProvider); + IIndexDataflowHelperFactory dataflowHelperFactory = new IndexDataflowHelperFactory( + storageComponentProvider.getStorageManager(), secondaryFileSplitProvider); ExternalFilesIndexModificationOperatorDescriptor externalFilesOp = new ExternalFilesIndexModificationOperatorDescriptor(spec, dataflowHelperFactory, externalFilesSnapshot); @@ -387,7 +387,7 @@ metadataProvider.getSplitProviderAndConstraints(dataset, indexName); IIndexDataflowHelperFactory dataflowHelperFactory = new IndexDataflowHelperFactory( metadataProvider.getStorageComponentProvider().getStorageManager(), splitsAndConstraint.first); - IndexDropOperatorDescriptor btreeDrop = new IndexDropOperatorDescriptor(spec, dataflowHelperFactory); + IndexDropOperatorDescriptor btreeDrop = new IndexDropOperatorDescriptor(spec, dataflowHelperFactory, 5); AlgebricksPartitionConstraintHelper.setPartitionConstraintInJobSpec(spec, btreeDrop, splitsAndConstraint.second); spec.addRoot(btreeDrop); diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryTreeIndexOperationsHelper.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryTreeIndexOperationsHelper.java index 2dcab4f..95d42fc 100644 --- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryTreeIndexOperationsHelper.java +++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryTreeIndexOperationsHelper.java @@ -73,8 +73,8 @@ IIndexDataflowHelperFactory dataflowHelperFactory = new IndexDataflowHelperFactory( metadataProvider.getStorageComponentProvider().getStorageManager(), splitsAndConstraint.first); // The index drop operation should be persistent regardless of temp datasets or permanent dataset. - IndexDropOperatorDescriptor btreeDrop = new IndexDropOperatorDescriptor(spec, dataflowHelperFactory, - failSilently); + IndexDropOperatorDescriptor btreeDrop = + new IndexDropOperatorDescriptor(spec, dataflowHelperFactory, failSilently, 5); AlgebricksPartitionConstraintHelper.setPartitionConstraintInJobSpec(spec, btreeDrop, splitsAndConstraint.second); spec.addRoot(btreeDrop); diff --git a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/AbstractBTreeOperatorTest.java b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/AbstractBTreeOperatorTest.java index 04226df..bc34ed5 100644 --- a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/AbstractBTreeOperatorTest.java +++ b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/AbstractBTreeOperatorTest.java @@ -56,8 +56,8 @@ import org.apache.hyracks.storage.am.common.build.IndexBuilderFactory; import org.apache.hyracks.storage.am.common.dataflow.IIndexDataflowHelperFactory; import org.apache.hyracks.storage.am.common.dataflow.IndexCreateOperatorDescriptor; -import org.apache.hyracks.storage.am.common.dataflow.IndexDropOperatorDescriptor; import org.apache.hyracks.storage.am.common.dataflow.IndexDataflowHelperFactory; +import org.apache.hyracks.storage.am.common.dataflow.IndexDropOperatorDescriptor; import org.apache.hyracks.storage.am.common.dataflow.TreeIndexBulkLoadOperatorDescriptor; import org.apache.hyracks.storage.am.common.dataflow.TreeIndexInsertUpdateDeleteOperatorDescriptor; import org.apache.hyracks.storage.am.common.freepage.AppendOnlyLinkedMetadataPageManagerFactory; @@ -258,7 +258,7 @@ protected void destroyPrimaryIndex() throws Exception { JobSpecification spec = new JobSpecification(); - IndexDropOperatorDescriptor primaryDropOp = new IndexDropOperatorDescriptor(spec, primaryHelperFactory); + IndexDropOperatorDescriptor primaryDropOp = new IndexDropOperatorDescriptor(spec, primaryHelperFactory, 0); PartitionConstraintHelper.addAbsoluteLocationConstraint(spec, primaryDropOp, NC1_ID); spec.addRoot(primaryDropOp); runTest(spec); @@ -266,7 +266,7 @@ protected void destroySecondaryIndex() throws Exception { JobSpecification spec = new JobSpecification(); - IndexDropOperatorDescriptor secondaryDropOp = new IndexDropOperatorDescriptor(spec, secondaryHelperFactory); + IndexDropOperatorDescriptor secondaryDropOp = new IndexDropOperatorDescriptor(spec, secondaryHelperFactory, 0); PartitionConstraintHelper.addAbsoluteLocationConstraint(spec, secondaryDropOp, NC1_ID); spec.addRoot(secondaryDropOp); runTest(spec); diff --git a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/rtree/AbstractRTreeOperatorTest.java b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/rtree/AbstractRTreeOperatorTest.java index c44544a..fbb23f8 100644 --- a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/rtree/AbstractRTreeOperatorTest.java +++ b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/rtree/AbstractRTreeOperatorTest.java @@ -57,8 +57,8 @@ import org.apache.hyracks.storage.am.common.build.IndexBuilderFactory; import org.apache.hyracks.storage.am.common.dataflow.IIndexDataflowHelperFactory; import org.apache.hyracks.storage.am.common.dataflow.IndexCreateOperatorDescriptor; -import org.apache.hyracks.storage.am.common.dataflow.IndexDropOperatorDescriptor; import org.apache.hyracks.storage.am.common.dataflow.IndexDataflowHelperFactory; +import org.apache.hyracks.storage.am.common.dataflow.IndexDropOperatorDescriptor; import org.apache.hyracks.storage.am.common.dataflow.TreeIndexBulkLoadOperatorDescriptor; import org.apache.hyracks.storage.am.common.dataflow.TreeIndexInsertUpdateDeleteOperatorDescriptor; import org.apache.hyracks.storage.am.common.freepage.AppendOnlyLinkedMetadataPageManagerFactory; @@ -397,7 +397,7 @@ protected void destroyPrimaryIndex() throws Exception { JobSpecification spec = new JobSpecification(); - IndexDropOperatorDescriptor primaryDropOp = new IndexDropOperatorDescriptor(spec, primaryHelperFactory); + IndexDropOperatorDescriptor primaryDropOp = new IndexDropOperatorDescriptor(spec, primaryHelperFactory, 0); PartitionConstraintHelper.addAbsoluteLocationConstraint(spec, primaryDropOp, NC1_ID); spec.addRoot(primaryDropOp); runTest(spec); @@ -405,7 +405,7 @@ protected void destroySecondaryIndex() throws Exception { JobSpecification spec = new JobSpecification(); - IndexDropOperatorDescriptor secondaryDropOp = new IndexDropOperatorDescriptor(spec, secondaryHelperFactory); + IndexDropOperatorDescriptor secondaryDropOp = new IndexDropOperatorDescriptor(spec, secondaryHelperFactory, 0); PartitionConstraintHelper.addAbsoluteLocationConstraint(spec, secondaryDropOp, NC1_ID); spec.addRoot(secondaryDropOp); runTest(spec); diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/api/IIndexDataflowHelper.java b/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/api/IIndexDataflowHelper.java index be10b27..ee95b94 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/api/IIndexDataflowHelper.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/api/IIndexDataflowHelper.java @@ -19,6 +19,7 @@ package org.apache.hyracks.storage.am.common.api; import org.apache.hyracks.api.exceptions.HyracksDataException; +import org.apache.hyracks.api.io.FileReference; import org.apache.hyracks.storage.common.IIndex; import org.apache.hyracks.storage.common.LocalResource; @@ -55,4 +56,9 @@ * @throws HyracksDataException */ LocalResource getResource() throws HyracksDataException; + + /** + * @return the file reference associated with the index + */ + FileReference getResourceRef(); } diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexDataflowHelper.java b/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexDataflowHelper.java index 1e959e1..1c54237 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexDataflowHelper.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexDataflowHelper.java @@ -55,12 +55,12 @@ public void open() throws HyracksDataException { //Get local resource file synchronized (lcManager) { - index = lcManager.get(resourceRef.getRelativePath()); + index = lcManager.get(getResourceRef().getRelativePath()); if (index == null) { LocalResource lr = readIndex(); lcManager.register(lr.getPath(), index); } - lcManager.open(resourceRef.getRelativePath()); + lcManager.open(getResourceRef().getRelativePath()); } } @@ -79,34 +79,39 @@ @Override public void close() throws HyracksDataException { synchronized (lcManager) { - lcManager.close(resourceRef.getRelativePath()); + lcManager.close(getResourceRef().getRelativePath()); } } @Override public void destroy() throws HyracksDataException { synchronized (lcManager) { - index = lcManager.get(resourceRef.getRelativePath()); + index = lcManager.get(getResourceRef().getRelativePath()); if (index != null) { - lcManager.unregister(resourceRef.getRelativePath()); + lcManager.unregister(getResourceRef().getRelativePath()); } else { readIndex(); } if (getResourceId() != -1) { - localResourceRepository.delete(resourceRef.getRelativePath()); + localResourceRepository.delete(getResourceRef().getRelativePath()); } index.destroy(); } } private long getResourceId() throws HyracksDataException { - LocalResource lr = localResourceRepository.get(resourceRef.getRelativePath()); + LocalResource lr = localResourceRepository.get(getResourceRef().getRelativePath()); return lr == null ? -1 : lr.getId(); } @Override public LocalResource getResource() throws HyracksDataException { - return localResourceRepository.get(resourceRef.getRelativePath()); + return localResourceRepository.get(getResourceRef().getRelativePath()); + } + + @Override + public FileReference getResourceRef() { + return resourceRef; } } diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexDropOperatorDescriptor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexDropOperatorDescriptor.java index 18c7107..6f0354d 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexDropOperatorDescriptor.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexDropOperatorDescriptor.java @@ -31,22 +31,24 @@ private static final long serialVersionUID = 1L; private final IIndexDataflowHelperFactory dataflowHelperFactory; private final boolean failSilently; + private final int reAttempts; public IndexDropOperatorDescriptor(IOperatorDescriptorRegistry spec, - IIndexDataflowHelperFactory dataflowHelperFactory) { - this(spec, dataflowHelperFactory, false); + IIndexDataflowHelperFactory dataflowHelperFactory, int reAttempts) { + this(spec, dataflowHelperFactory, false, reAttempts); } public IndexDropOperatorDescriptor(IOperatorDescriptorRegistry spec, - IIndexDataflowHelperFactory dataflowHelperFactory, boolean failSilently) { + IIndexDataflowHelperFactory dataflowHelperFactory, boolean failSilently, int reAttempts) { super(spec, 0, 0); this.dataflowHelperFactory = dataflowHelperFactory; this.failSilently = failSilently; + this.reAttempts = reAttempts; } @Override public IOperatorNodePushable createPushRuntime(IHyracksTaskContext ctx, IRecordDescriptorProvider recordDescProvider, int partition, int nPartitions) throws HyracksDataException { - return new IndexDropOperatorNodePushable(dataflowHelperFactory, failSilently, ctx, partition); + return new IndexDropOperatorNodePushable(dataflowHelperFactory, failSilently, ctx, partition, reAttempts); } } diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexDropOperatorNodePushable.java b/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexDropOperatorNodePushable.java index 7c2021b..17639de 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexDropOperatorNodePushable.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexDropOperatorNodePushable.java @@ -19,21 +19,29 @@ package org.apache.hyracks.storage.am.common.dataflow; +import java.util.logging.Level; +import java.util.logging.Logger; + import org.apache.hyracks.api.comm.IFrameWriter; import org.apache.hyracks.api.context.IHyracksTaskContext; import org.apache.hyracks.api.dataflow.value.RecordDescriptor; +import org.apache.hyracks.api.exceptions.ErrorCode; import org.apache.hyracks.api.exceptions.HyracksDataException; +import org.apache.hyracks.api.util.IoUtil; import org.apache.hyracks.dataflow.std.base.AbstractOperatorNodePushable; import org.apache.hyracks.storage.am.common.api.IIndexDataflowHelper; public class IndexDropOperatorNodePushable extends AbstractOperatorNodePushable { + private static final Logger LOGGER = Logger.getLogger(IndexDropOperatorNodePushable.class.getName()); private final IIndexDataflowHelper indexHelper; private final boolean failSliently; + private final int reAttempts; public IndexDropOperatorNodePushable(IIndexDataflowHelperFactory indexHelperFactory, boolean failSilently, - IHyracksTaskContext ctx, int partition) throws HyracksDataException { + IHyracksTaskContext ctx, int partition, int reAttempts) throws HyracksDataException { this.indexHelper = indexHelperFactory.create(ctx.getJobletContext().getServiceContext(), partition); this.failSliently = failSilently; + this.reAttempts = reAttempts; } @Override @@ -55,12 +63,42 @@ try { indexHelper.destroy(); } catch (HyracksDataException e) { + int attempt = 0; + while (attempt < reAttempts) { + attempt++; + LOGGER.log(Level.WARNING, "Drop index failed.. we will perfrom re-attempt number " + attempt, e); + if (reAttempt(e)) { + return; + } + } if (!failSliently) { throw e; } } } + private boolean reAttempt(HyracksDataException hde) throws HyracksDataException { + if (hde.getComponent().equals(ErrorCode.HYRACKS) && hde.getErrorCode() == ErrorCode.CANNOT_DELETE_FILE) { + try { + Thread.sleep(1000); + } catch (InterruptedException ie) { + Thread.currentThread().interrupt(); + } + try { + if (indexHelper.getResourceRef().getFile().exists()) { + IoUtil.delete(indexHelper.getResourceRef()); + } + } catch (Exception e) { + hde.addSuppressed(e); + return false; + } + return true; + } else { + LOGGER.log(Level.WARNING, "Unrecoverable failure... skipping re-attempt"); + return false; + } + } + @Override public void setOutputFrameWriter(int index, IFrameWriter writer, RecordDescriptor recordDesc) { } diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMHarness.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMHarness.java index b1005bd..5e4ecfb 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMHarness.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMHarness.java @@ -346,12 +346,15 @@ lsmIndex.scheduleReplication(null, inactiveDiskComponentsToBeDeleted, false, ReplicationOperation.DELETE, opType); } - for (ILSMComponent c : inactiveDiskComponentsToBeDeleted) { - ((AbstractLSMDiskComponent) c).destroy(); + try { + ((AbstractLSMDiskComponent) c).destroy(); + } catch (HyracksDataException e) { + LOGGER.log(Level.WARNING, "Failure destroying merged component", e); + } } } catch (Throwable e) { - e.printStackTrace(); + LOGGER.log(Level.WARNING, "Failure scheduling replication and destroying merged component", e); throw e; } } -- To view, visit https://asterix-gerrit.ics.uci.edu/1930 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I843de8b26c181205e43f4eabe22a7c43f3ebfcbc Gerrit-PatchSet: 1 Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Owner: abdullah alamoudi <bamou...@gmail.com>