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;