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 st...@apache.org on 2021/02/17 10:42:13 UTC
svn commit: r1886615 - in /jackrabbit/oak/trunk/oak-store-document/src:
main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
test/java/org/apache/jackrabbit/oak/plugins/document/DocumentSplitTest.java
Author: stefanegli
Date: Wed Feb 17 10:42:12 2021
New Revision: 1886615
URL: http://svn.apache.org/viewvc?rev=1886615&view=rev
Log:
OAK-9358 : DocumentNodeStore may accumulate split candidates - Fix issue and enable tests - Applying patch from Marcel
Modified:
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentSplitTest.java
Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java?rev=1886615&r1=1886614&r2=1886615&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java Wed Feb 17 10:42:12 2021
@@ -2485,6 +2485,7 @@ public final class DocumentNodeStore
List<UpdateOp> splitOpsPhase2 = new ArrayList<>(initialCapacity);
List<String> removeCandidates = new ArrayList<>(initialCapacity);
for (String id : splitCandidates.keySet()) {
+ removeCandidates.add(id);
NodeDocument doc = store.find(Collection.NODES, id);
if (doc == null) {
continue;
@@ -2508,7 +2509,6 @@ public final class DocumentNodeStore
splitOpsPhase2.add(op);
}
}
- removeCandidates.add(id);
if (splitOpsPhase1.size() >= getCreateOrUpdateBatchSize()
|| splitOpsPhase2.size() >= getCreateOrUpdateBatchSize()) {
invalidatePaths(pathsToInvalidate);
@@ -2527,8 +2527,8 @@ public final class DocumentNodeStore
invalidatePaths(pathsToInvalidate);
batchSplit(splitOpsPhase1);
batchSplit(splitOpsPhase2);
- splitCandidates.keySet().removeAll(removeCandidates);
}
+ splitCandidates.keySet().removeAll(removeCandidates);
}
private void invalidatePaths(@NotNull Set<Path> pathsToInvalidate) {
Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentSplitTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentSplitTest.java?rev=1886615&r1=1886614&r2=1886615&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentSplitTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentSplitTest.java Wed Feb 17 10:42:12 2021
@@ -45,7 +45,6 @@ import org.apache.jackrabbit.oak.spi.sta
import org.apache.jackrabbit.oak.spi.state.NodeStore;
import org.apache.jackrabbit.oak.stats.Clock;
import org.jetbrains.annotations.NotNull;
-import org.junit.Ignore;
import org.junit.Test;
import com.google.common.collect.Iterables;
@@ -1075,7 +1074,6 @@ public class DocumentSplitTest extends B
}
}
- @Ignore("OAK-9358")
@Test
public void splitCandidatesCleanAfterBackgroundUpdate() throws Exception {
DocumentNodeStore ns = mk.getNodeStore();
@@ -1088,7 +1086,6 @@ public class DocumentSplitTest extends B
assertThat(ns.getSplitCandidates(), empty());
}
- @Ignore("OAK-9358")
@Test
public void splitCandidatesCleanAfterBackgroundUpdateWithUnknownId() throws Exception {
DocumentNodeStore ns = mk.getNodeStore();