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 mr...@apache.org on 2014/05/05 13:45:58 UTC
svn commit: r1592487 -
/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorTest.java
Author: mreutegg
Date: Mon May 5 11:45:57 2014
New Revision: 1592487
URL: http://svn.apache.org/r1592487
Log:
OAK-1793: MongoMK GC removes documents with data still in use
Add currently ignored test
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorTest.java
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorTest.java?rev=1592487&r1=1592486&r2=1592487&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorTest.java Mon May 5 11:45:57 2014
@@ -49,6 +49,7 @@ import org.apache.jackrabbit.oak.spi.sta
import org.apache.jackrabbit.oak.stats.Clock;
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;
@@ -298,6 +299,34 @@ public class VersionGarbageCollectorTest
assertEquals(names, children);
}
+ // OAK-1793
+ @Ignore
+ @Test
+ public void gcPrevWithMostRecentModification() throws Exception {
+ long maxAge = 1; //hrs
+ long delta = TimeUnit.MINUTES.toMillis(10);
+
+ for (int i = 0; i < NUM_REVS_THRESHOLD + 1; i++) {
+ NodeBuilder builder = store.getRoot().builder();
+ builder.child("foo").setProperty("prop", "v" + i);
+ builder.child("bar").setProperty("prop", "v" + i);
+ store.merge(builder, EmptyHook.INSTANCE, CommitInfo.EMPTY);
+ }
+
+ store.runBackgroundOperations();
+
+ clock.waitUntil(clock.getTime() + TimeUnit.HOURS.toMillis(maxAge) + delta);
+
+ VersionGCStats stats = gc.gc(maxAge, TimeUnit.HOURS);
+ assertEquals(2, stats.splitDocGCCount);
+
+ NodeDocument doc = getDoc("/foo");
+ assertNotNull(doc);
+ DocumentNodeState state = doc.getNodeAtRevision(
+ store, store.getHeadRevision(), null);
+ assertNotNull(state);
+ }
+
private NodeDocument getDoc(String path){
return store.getDocumentStore().find(NODES, Utils.getIdFromPath(path), 0);
}