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 da...@apache.org on 2023/09/11 05:26:52 UTC
[jackrabbit-oak] 16/29: OAK-10199 : added test case to continue with GC even if there is crash
This is an automated email from the ASF dual-hosted git repository.
daim pushed a commit to branch DetailedGC/OAK-10199
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
commit 92640c8c6de15b73582132631d45d7498655edce
Author: Rishabh Kumar <di...@adobe.com>
AuthorDate: Thu Jun 22 14:19:31 2023 +0530
OAK-10199 : added test case to continue with GC even if there is crash
---
.../document/VersionGarbageCollectorIT.java | 27 +++++++++++++---------
1 file changed, 16 insertions(+), 11 deletions(-)
diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorIT.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorIT.java
index e0de0c0617..031176ca33 100644
--- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorIT.java
+++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorIT.java
@@ -84,7 +84,6 @@ import org.apache.jackrabbit.oak.stats.Clock;
import org.jetbrains.annotations.NotNull;
import org.junit.After;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -92,7 +91,7 @@ import org.junit.runners.Parameterized;
@RunWith(Parameterized.class)
public class VersionGarbageCollectorIT {
- private DocumentStoreFixture fixture;
+ private final DocumentStoreFixture fixture;
private Clock clock;
@@ -145,6 +144,7 @@ public class VersionGarbageCollectorIT {
if (store != null) {
store.dispose();
}
+ ClusterNodeInfo.resetClockToDefault();
Revision.resetClockToDefault();
execService.shutdown();
execService.awaitTermination(1, MINUTES);
@@ -456,15 +456,19 @@ public class VersionGarbageCollectorIT {
// Test when properties are not collected in one GC cycle
@Test
- @Ignore
public void testGCDeletedProps_4() throws Exception {
- documentMKBuilder = new DocumentMK.Builder().clock(clock)
- .setLeaseCheckMode(LeaseCheckMode.DISABLED)
- .setDocumentStore(new FailingDocumentStore(fixture.createDocumentStore(), 42)).setAsyncDelay(0);
- store = documentMKBuilder.getNodeStore();
+ final FailingDocumentStore fds = new FailingDocumentStore(fixture.createDocumentStore(), 42) {
+ @Override
+ public void dispose() {}
+ };
+ store = new DocumentMK.Builder().clock(clock).setLeaseCheckMode(LeaseCheckMode.DISABLED)
+ .setDocumentStore(fds).setAsyncDelay(0).getNodeStore();
+
assertTrue(store.getDocumentStore() instanceof FailingDocumentStore);
+
MongoTestUtils.setReadPreference(store, ReadPreference.primary());
gc = store.getVersionGarbageCollector();
+
//1. Create nodes with properties
NodeBuilder b1 = store.getRoot().builder();
// Add property to node & save
@@ -489,25 +493,26 @@ public class VersionGarbageCollectorIT {
//3. Check that deleted property does get collected again
// increment the clock again by more than 2 hours + delta
clock.waitUntil(clock.getTime() + HOURS.toMillis(maxAge*2) + delta);
- gc.setOptions(gc.getOptions().withMaxIterations(1));
- ((FailingDocumentStore) store.getDocumentStore()).fail().after(0).eternally();
+ fds.fail().after(0).eternally();
try {
store.dispose();
fail("dispose() must fail with an exception");
} catch (DocumentStoreException e) {
// expected
}
- ((FailingDocumentStore) store.getDocumentStore()).fail().never();
+ fds.fail().never();
// create new store
store = new DocumentMK.Builder().clock(clock).setLeaseCheckMode(LeaseCheckMode.DISABLED)
- .setDocumentStore(new FailingDocumentStore(fixture.createDocumentStore(1), 42)).setAsyncDelay(0)
+ .setDocumentStore(fds).setAsyncDelay(0)
.getNodeStore();
assertTrue(store.getDocumentStore() instanceof FailingDocumentStore);
MongoTestUtils.setReadPreference(store, ReadPreference.primary());
gc = store.getVersionGarbageCollector();
store.runBackgroundOperations();
+ // enable the detailed gc flag
+ writeField(gc, "detailedGCEnabled", true, true);
//4. Check that deleted property does get collected again
// increment the clock again by more than 2 hours + delta