You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ng...@apache.org on 2023/10/20 05:08:42 UTC
[jackrabbit-oak] branch trunk updated: OAK-10503 | Handle Exception in case of diff failures while building incremental FFS and handling Add operations during merging of incremental FFS. (#1172)
This is an automated email from the ASF dual-hosted git repository.
ngupta pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
The following commit(s) were added to refs/heads/trunk by this push:
new e904e45942 OAK-10503 | Handle Exception in case of diff failures while building incremental FFS and handling Add operations during merging of incremental FFS. (#1172)
e904e45942 is described below
commit e904e4594274f28fd7499ec1620648893b43d6b0
Author: nit0906 <ni...@gmail.com>
AuthorDate: Fri Oct 20 10:38:36 2023 +0530
OAK-10503 | Handle Exception in case of diff failures while building incremental FFS and handling Add operations during merging of incremental FFS. (#1172)
* Don't throw exception in case of Modified operation instead of Add
* Throw exception in case of diff failure while building incremental ffs
---------
Co-authored-by: Nitin Gupta <ni...@adobe.com>
---
.../document/incrementalstore/IncrementalFlatFileStoreStrategy.java | 6 +++++-
.../document/incrementalstore/MergeIncrementalFlatFileStore.java | 5 ++++-
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/incrementalstore/IncrementalFlatFileStoreStrategy.java b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/incrementalstore/IncrementalFlatFileStoreStrategy.java
index fc776d93fa..1718e71f86 100644
--- a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/incrementalstore/IncrementalFlatFileStoreStrategy.java
+++ b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/incrementalstore/IncrementalFlatFileStoreStrategy.java
@@ -85,7 +85,11 @@ public class IncrementalFlatFileStoreStrategy implements IncrementalIndexStoreSo
try (BufferedWriter w = FlatFileStoreUtils.createWriter(file, algorithm)) {
NodeState before = Objects.requireNonNull(nodeStore.retrieve(beforeCheckpoint));
NodeState after = Objects.requireNonNull(nodeStore.retrieve(afterCheckpoint));
- EditorDiff.process(VisibleEditor.wrap(new IncrementalFlatFileStoreEditor(w, entryWriter, pathPredicate, this)), before, after);
+ Exception e = EditorDiff.process(VisibleEditor.wrap(new IncrementalFlatFileStoreEditor(w, entryWriter, pathPredicate, this)), before, after);
+ if (e != null) {
+ log.error("Exception while building incremental store for checkpoint before {}, after {}", beforeCheckpoint, afterCheckpoint, e);
+ throw new RuntimeException(e);
+ }
}
String sizeStr = algorithm.equals(Compression.NONE) ? "" : String.format("compressed/%s actual size", humanReadableByteCount(textSize));
log.info("Dumped {} nodestates in json format in {} ({} {})", entryCount, sw, humanReadableByteCount(file.length()), sizeStr);
diff --git a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/incrementalstore/MergeIncrementalFlatFileStore.java b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/incrementalstore/MergeIncrementalFlatFileStore.java
index 6fde796030..b6cc8ecc6b 100644
--- a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/incrementalstore/MergeIncrementalFlatFileStore.java
+++ b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/incrementalstore/MergeIncrementalFlatFileStore.java
@@ -115,7 +115,10 @@ public class MergeIncrementalFlatFileStore implements MergeIncrementalStore {
baseFFSLine = writeAndAdvance(writer, baseFFSBufferedReader, baseFFSLine);
} else if (compared > 0) { // write incrementalFFSline and advance line in incrementalFFS
String[] incrementalFFSParts = IncrementalFlatFileStoreNodeStateEntryWriter.getParts(incrementalFFSLine);
- checkState(IncrementalStoreOperand.ADD.toString().equals(getOperand(incrementalFFSParts)));
+ if (!IncrementalStoreOperand.ADD.toString().equals(getOperand(incrementalFFSParts))) {
+ log.warn("Expected operand {} but got {} for incremental line {}. Merging will proceed as usual, but this needs to be looked into.",
+ IncrementalStoreOperand.ADD, getOperand(incrementalFFSParts), incrementalFFSLine);
+ }
incrementalFFSLine = writeAndAdvance(writer, incrementalFFSBufferedReader,
getFFSLineFromIncrementalFFSParts(incrementalFFSParts));
} else {