Adding a test of a put on a file region during a GII with the fixed PR

Project: http://git-wip-us.apache.org/repos/asf/geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/a17c8555
Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/a17c8555
Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/a17c8555

Branch: refs/heads/feature/GEODE-2402
Commit: a17c8555fc1e24cf771625675e555484c5f0988c
Parents: de819a3
Author: Dan Smith <[email protected]>
Authored: Wed Feb 8 16:38:13 2017 -0800
Committer: Dan Smith <[email protected]>
Committed: Tue Feb 14 10:57:18 2017 -0800

----------------------------------------------------------------------
 .../internal/cache/InitialImageOperation.java   |  2 +-
 .../geode/cache/lucene/LuceneDUnitTest.java     |  2 +-
 .../geode/cache/lucene/LuceneQueriesPRBase.java | 46 ++++++++++++++++++++
 3 files changed, 48 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/geode/blob/a17c8555/geode-core/src/main/java/org/apache/geode/internal/cache/InitialImageOperation.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/InitialImageOperation.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/InitialImageOperation.java
index 3ec8152..d0ad5db 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/InitialImageOperation.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/InitialImageOperation.java
@@ -3947,7 +3947,7 @@ public class InitialImageOperation {
     }
   }
 
-  public static abstract class GIITestHook implements Runnable {
+  public static abstract class GIITestHook implements Runnable, Serializable {
     final private GIITestHookType type;
     final private String region_name;
     volatile public boolean isRunning;

http://git-wip-us.apache.org/repos/asf/geode/blob/a17c8555/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneDUnitTest.java
----------------------------------------------------------------------
diff --git 
a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneDUnitTest.java 
b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneDUnitTest.java
index 9318b0e..78edb5c 100644
--- 
a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneDUnitTest.java
+++ 
b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneDUnitTest.java
@@ -27,7 +27,7 @@ public abstract class LuceneDUnitTest extends 
JUnit4CacheTestCase {
   public void postSetUp() throws Exception {
     Host host = Host.getHost(0);
     dataStore1 = host.getVM(0);
-    dataStore2 = host.getVM(1);
+    dataStore2 = host.getVM(-1);
   }
 
   protected abstract void initDataStore(SerializableRunnableIF createIndex) 
throws Exception;

http://git-wip-us.apache.org/repos/asf/geode/blob/a17c8555/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesPRBase.java
----------------------------------------------------------------------
diff --git 
a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesPRBase.java
 
b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesPRBase.java
index 931edc5..be2a754 100644
--- 
a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesPRBase.java
+++ 
b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesPRBase.java
@@ -23,6 +23,13 @@ import static org.mockito.Matchers.any;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.IntStream;
 
+import org.apache.geode.distributed.internal.DistributionManager;
+import org.apache.geode.distributed.internal.DistributionMessage;
+import org.apache.geode.distributed.internal.DistributionMessageObserver;
+import org.apache.geode.internal.cache.InitialImageOperation;
+import org.apache.geode.internal.cache.InitialImageOperation.GIITestHook;
+import org.apache.geode.internal.cache.InitialImageOperation.GIITestHookType;
+import 
org.apache.geode.internal.cache.InitialImageOperation.RequestImageMessage;
 import org.junit.After;
 import org.junit.Test;
 
@@ -63,6 +70,45 @@ public abstract class LuceneQueriesPRBase extends 
LuceneQueriesBase {
   }
 
   @Test
+  public void returnCorrectResultsWhenIndexUpdateHappensIntheMiddleofGII()
+      throws InterruptedException {
+    SerializableRunnableIF createIndex = () -> {
+      LuceneService luceneService = LuceneServiceProvider.get(getCache());
+      luceneService.createIndex(INDEX_NAME, REGION_NAME, "text");
+    };
+    dataStore1.invoke(() -> initDataStore(createIndex));
+    accessor.invoke(() -> initAccessor(createIndex));
+    dataStore1.invoke(() -> LuceneTestUtilities.pauseSender(getCache()));
+    putEntryInEachBucket();
+
+    dataStore2.invoke(() -> {
+      InitialImageOperation.setGIITestHook(
+          new GIITestHook(GIITestHookType.AfterSentRequestImage, "Do puts 
during request") {
+            @Override
+            public void reset() {
+
+          }
+
+            @Override
+            public String getRegionName() {
+              return "_B__index#__region.files_0";
+            }
+
+            @Override
+            public void run() {
+              dataStore1.invoke(() -> 
LuceneTestUtilities.resumeSender(getCache()));
+              waitForFlushBeforeExecuteTextSearch(dataStore1, 30000);
+            }
+          });
+    });
+
+    dataStore2.invoke(() -> initDataStore(createIndex));
+
+    assertTrue(waitForFlushBeforeExecuteTextSearch(dataStore1, 30000));
+    executeTextSearch(accessor, "world", "text", NUM_BUCKETS);
+  }
+
+  @Test
   public void returnCorrectResultsWhenMoveBucketHappensOnIndexUpdate() throws 
InterruptedException {
     final DistributedMember member2 =
         dataStore2.invoke(() -> 
getCache().getDistributedSystem().getDistributedMember());

Reply via email to