[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 <mblow@apache.org>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
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 9b722df..05bc87b 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 @@
@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 b0d8e02..8491f6c 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.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 @@
}
}
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();