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 am...@apache.org on 2017/10/18 09:42:45 UTC

svn commit: r1812486 - in /jackrabbit/oak/trunk: oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/ oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/

Author: amitj
Date: Wed Oct 18 09:42:45 2017
New Revision: 1812486

URL: http://svn.apache.org/viewvc?rev=1812486&view=rev
Log:
OAK-6827: Consistency check fails with active deletions

More test coverage

Modified:
    jackrabbit/oak/trunk/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/ActiveDeletionTrackerStoreTest.java
    jackrabbit/oak/trunk/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreTrackerGCTest.java

Modified: jackrabbit/oak/trunk/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/ActiveDeletionTrackerStoreTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/ActiveDeletionTrackerStoreTest.java?rev=1812486&r1=1812485&r2=1812486&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/ActiveDeletionTrackerStoreTest.java (original)
+++ jackrabbit/oak/trunk/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/ActiveDeletionTrackerStoreTest.java Wed Oct 18 09:42:45 2017
@@ -104,6 +104,14 @@ public class ActiveDeletionTrackerStoreT
     }
 
     @Test
+    public void filterWithNoActiveDeletion() throws Exception {
+        File toFilter = create(range(7, 10), folder);
+        Iterator<String> filtered = tracker.filter(toFilter);
+
+        assertEquals("incorrect elements after filtering", Sets.newHashSet(range(7, 10)), Sets.newHashSet(filtered));
+    }
+
+    @Test
     public void filter() throws Exception {
         add(tracker, range(0, 20), folder);
         File toFilter = create(range(7, 10), folder);
@@ -124,17 +132,17 @@ public class ActiveDeletionTrackerStoreT
 
     @Test
     public void filterWithExtraElements() throws Exception {
-        add(tracker, range(5, 20), folder);
-        List<String> toFilter = combine(combine(range(7, 10), range(0, 4)), range(21, 25));
+        add(tracker, range(5, 25), folder);
+        List<String> toFilter = combine(range(7, 10), range(0, 4));
         File toFilterFile = create(toFilter, folder);
         Iterator<String> filtered = tracker.filter(toFilterFile);
 
         assertEquals("Incorrect elements after filtering",
-            combine(range(0, 4), range(21, 25)), Lists.newArrayList(filtered));
+            range(0, 4), Lists.newArrayList(filtered));
     }
 
     @Test
-    public void reconcileNone() throws Exception {
+    public void reconcileAll() throws Exception {
         Set<String> initAdd = add(tracker, range(0, 20), folder);
         List toReconcile = Lists.newArrayList();
 
@@ -143,7 +151,20 @@ public class ActiveDeletionTrackerStoreT
         tracker.reconcile(toFilter);
         Set<String> retrieved = retrieve(tracker, folder);
 
-        assertEquals("Incorrect elements with after reconciliation", Sets.newHashSet(toReconcile), retrieved);
+        assertEquals("Incorrect elements after reconciliation", Sets.newHashSet(toReconcile), retrieved);
+    }
+
+    @Test
+    public void reconcileNone() throws Exception {
+        Set<String> initAdd = add(tracker, range(0, 20), folder);
+        List<String> toReconcile = range(0, 20);
+
+        File toFilter = create(toReconcile, folder);
+
+        tracker.reconcile(toFilter);
+        Set<String> retrieved = retrieve(tracker, folder);
+
+        assertEquals("Incorrect elements after reconciliation", Sets.newHashSet(toReconcile), retrieved);
     }
 
     @Test
@@ -156,7 +177,20 @@ public class ActiveDeletionTrackerStoreT
         tracker.reconcile(toFilter);
         Set<String> retrieved = retrieve(tracker, folder);
 
-        assertEquals("Incorrect elements with after reconciliation", Sets.newHashSet(toReconcile), retrieved);
+        assertEquals("Incorrect elements after reconciliation", Sets.newHashSet(toReconcile), retrieved);
+    }
+
+    @Test
+    public void reconcileExtraElements() throws Exception {
+        Set<String> initAdd = add(tracker, range(0, 25), folder);
+        List<String> toReconcile = combine(range(7, 10), range(1, 4));
+
+        File toFilter = create(toReconcile, folder);
+
+        tracker.reconcile(toFilter);
+        Set<String> retrieved = retrieve(tracker, folder);
+
+        assertEquals("Incorrect elements after reconciliation", Sets.newHashSet(toReconcile), retrieved);
     }
 
     @Test

Modified: jackrabbit/oak/trunk/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreTrackerGCTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreTrackerGCTest.java?rev=1812486&r1=1812485&r2=1812486&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreTrackerGCTest.java (original)
+++ jackrabbit/oak/trunk/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreTrackerGCTest.java Wed Oct 18 09:42:45 2017
@@ -201,6 +201,17 @@ public class DataStoreTrackerGCTest {
     }
 
     @Test
+    public void consistencyCheckNoActiveDeletion() throws Exception {
+        Cluster cluster = new Cluster("cluster1");
+        BlobStore s = cluster.blobStore;
+        BlobIdTracker tracker = (BlobIdTracker) ((BlobTrackingStore) s).getTracker();
+        DataStoreState state = init(cluster.nodeStore, 0);
+
+        // Since datastore in consistent state and only active deletions the missing list should be empty
+        assertEquals(0, cluster.gc.checkConsistency());
+    }
+
+    @Test
     public void consistencyCheckOnlyActiveDeletion() throws Exception {
         Cluster cluster = new Cluster("cluster1");
         BlobStore s = cluster.blobStore;