This is an automated email from the ASF dual-hosted git repository. mblow pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/asterixdb.git
commit e64d04628930c3aac2d4b3d10a098f35e9ca0464 Author: Murtadha Hubail <[email protected]> AuthorDate: Tue Jul 18 17:22:24 2023 +0300 [ASTERIXDB-3226][STO] Warn on missing primary index during flush - user model changes: no - storage format changes: no - interface changes: no Details: - To account for leaked secondary files, warn rather than halting on missing primary index during flush to allow recovery to complete. Eventually, the leaked files will be deleted during global recovery. - Fix log message. Change-Id: I7858a67cfc97fb1fde01c463a256083952d51543 Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17647 Reviewed-by: Michael Blow <[email protected]> Integration-Tests: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> --- .../apache/asterix/app/message/ExecuteStatementRequestMessage.java | 2 +- .../asterix/common/context/PrimaryIndexOperationTracker.java | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java index 9b722df12c..05bc87b2f5 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java @@ -244,6 +244,6 @@ public class ExecuteStatementRequestMessage implements ICcAddressedMessage { @Override public String toString() { return String.format("%s(id=%s, from=%s, uuid=%s): %s", getClass().getSimpleName(), requestMessageId, - requestNodeId, LogRedactionUtil.statement(statementsText), requestReference.getUuid()); + requestNodeId, requestReference.getUuid(), LogRedactionUtil.statement(statementsText)); } } diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/PrimaryIndexOperationTracker.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/PrimaryIndexOperationTracker.java index b0d8e02af7..8491f6ccb9 100644 --- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/PrimaryIndexOperationTracker.java +++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/PrimaryIndexOperationTracker.java @@ -51,7 +51,6 @@ import org.apache.hyracks.storage.am.lsm.common.impls.FlushOperation; import org.apache.hyracks.storage.am.lsm.common.impls.LSMComponentId; import org.apache.hyracks.storage.common.IModificationOperationCallback; import org.apache.hyracks.storage.common.ISearchOperationCallback; -import org.apache.hyracks.util.ExitUtil; import org.apache.hyracks.util.annotations.NotThreadSafe; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -151,10 +150,10 @@ public class PrimaryIndexOperationTracker extends BaseOperationTracker implement } } if (primaryLsmIndex == null) { - LOGGER.fatal( - "Primary index not found in dataset {} and partition {} open indexes {}; halting to clear memory state", + LOGGER.warn( + "Primary index not found in dataset {} and partition {} open indexes {}; possible secondary index leaked files", dsInfo.getDatasetID(), partition, indexes); - ExitUtil.halt(ExitUtil.EC_INCONSISTENT_STORAGE_REFERENCES); + return; } for (ILSMIndex lsmIndex : indexes) { ILSMOperationTracker opTracker = lsmIndex.getOperationTracker();
