You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ja...@apache.org on 2018/01/25 18:40:08 UTC

[geode] branch develop updated: GEODE-4223: Test now waits until internal lucene regions are ready (#1301)

This is an automated email from the ASF dual-hosted git repository.

jasonhuynh pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/develop by this push:
     new a8f99b5  GEODE-4223: Test now waits until internal lucene regions are ready (#1301)
a8f99b5 is described below

commit a8f99b586db3938f337e3a2ab25388df61a35371
Author: Jason Huynh <hu...@gmail.com>
AuthorDate: Thu Jan 25 10:40:01 2018 -0800

    GEODE-4223: Test now waits until internal lucene regions are ready (#1301)
---
 .../lucene/RebalanceWithRedundancyDUnitTest.java   | 41 +++++++++++++++++-----
 1 file changed, 33 insertions(+), 8 deletions(-)

diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/RebalanceWithRedundancyDUnitTest.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/RebalanceWithRedundancyDUnitTest.java
index a6afb20..720dcc4 100644
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/RebalanceWithRedundancyDUnitTest.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/RebalanceWithRedundancyDUnitTest.java
@@ -18,6 +18,8 @@ import static org.apache.geode.cache.lucene.test.IndexRepositorySpy.*;
 import static org.apache.geode.cache.lucene.test.LuceneTestUtilities.*;
 import static org.junit.Assert.*;
 
+import java.io.Serializable;
+import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.IntStream;
 
@@ -39,7 +41,7 @@ import org.apache.geode.distributed.DistributedMember;
 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.PartitionedRegion;
+import org.apache.geode.internal.cache.control.InternalResourceManager;
 import org.apache.geode.test.dunit.SerializableRunnableIF;
 import org.apache.geode.test.junit.categories.DistributedTest;
 
@@ -129,6 +131,8 @@ public class RebalanceWithRedundancyDUnitTest extends LuceneQueriesAccessorBase
     putEntryInEachBucket();
 
     dataStore2.invoke(() -> {
+      TestResourceObserver observer = new TestResourceObserver(4);
+      InternalResourceManager.setResourceObserver(observer);
       InitialImageOperation.setGIITestHook(
           new GIITestHook(GIITestHookType.AfterSentRequestImage, "Do puts during request") {
             @Override
@@ -145,24 +149,23 @@ public class RebalanceWithRedundancyDUnitTest extends LuceneQueriesAccessorBase
             public void run() {
               dataStore1.invoke(() -> LuceneTestUtilities.resumeSender(getCache()));
               waitForFlushBeforeExecuteTextSearch(dataStore1, 30000);
+              ((TestResourceObserver) InternalResourceManager.getResourceObserver())
+                  .recoveryFinished();
             }
           });
     });
 
 
-    dataStore2.invoke(() -> initDataStore(createIndex, regionTestType));
-
-    assertTrue(waitForFlushBeforeExecuteTextSearch(dataStore1, 30000));
-
     dataStore2.invoke(() -> {
-      PartitionedRegion region = (PartitionedRegion) getCache().getRegion(REGION_NAME);
-      Awaitility.await().atMost(1, TimeUnit.MINUTES)
-          .until(() -> assertEquals(0, region.getPrStats().getLowRedundancyBucketCount()));
+      initDataStore(createIndex, regionTestType);
+      ((TestResourceObserver) InternalResourceManager.getResourceObserver()).await();
     });
 
+    assertTrue(waitForFlushBeforeExecuteTextSearch(dataStore1, 30000));
     dataStore1.invoke(() -> getCache().close());
 
     assertTrue(waitForFlushBeforeExecuteTextSearch(dataStore2, 30000));
+
     executeTextSearch(accessor, "world", "text", NUM_BUCKETS);
   }
 
@@ -189,4 +192,26 @@ public class RebalanceWithRedundancyDUnitTest extends LuceneQueriesAccessorBase
     executeTextSearch(accessor, "world", "text", NUM_BUCKETS);
   }
 
+  private class TestResourceObserver extends InternalResourceManager.ResourceObserverAdapter
+      implements Serializable {
+    CountDownLatch recoveryDone;
+
+    public TestResourceObserver(int numToWait) {
+      recoveryDone = new CountDownLatch(numToWait);
+    }
+
+    @Override
+    public void recoveryFinished(Region region) {
+      recoveryDone.countDown();
+    }
+
+    public void recoveryFinished() {
+      recoveryDone.countDown();
+    }
+
+    public void await() throws InterruptedException {
+      recoveryDone.await();
+    }
+  }
+
 }

-- 
To stop receiving notification emails like this one, please contact
jasonhuynh@apache.org.