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

eshu11 pushed a commit to branch feature/GEODE-7230
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/feature/GEODE-7230 by this 
push:
     new 8895c86  GEODE-7230: Avoid verification occurred before commit is 
finished.
8895c86 is described below

commit 8895c8629391a0cab6ed6b7f2167f7e218ffd1ef
Author: Eric Shu <[email protected]>
AuthorDate: Mon Sep 23 11:26:35 2019 -0700

    GEODE-7230: Avoid verification occurred before commit is finished.
---
 ...ntServerTransactionFailoverDistributedTest.java | 31 +++++++++++++++++-----
 1 file changed, 24 insertions(+), 7 deletions(-)

diff --git 
a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClientServerTransactionFailoverDistributedTest.java
 
b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClientServerTransactionFailoverDistributedTest.java
index e73a43d..ff5652e 100644
--- 
a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClientServerTransactionFailoverDistributedTest.java
+++ 
b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClientServerTransactionFailoverDistributedTest.java
@@ -51,6 +51,7 @@ import 
org.apache.geode.internal.cache.tier.sockets.CacheServerTestUtil;
 import org.apache.geode.internal.cache.tier.sockets.ClientHealthMonitor;
 import org.apache.geode.internal.cache.tier.sockets.ClientProxyMembershipID;
 import org.apache.geode.internal.logging.LogService;
+import org.apache.geode.test.awaitility.GeodeAwaitility;
 import org.apache.geode.test.dunit.AsyncInvocation;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
@@ -127,6 +128,12 @@ public class 
ClientServerTransactionFailoverDistributedTest implements Serializa
 
   private int createServerRegion(int totalNumBuckets, boolean isAccessor, int 
redundancy)
       throws Exception {
+    return createServerRegion(totalNumBuckets, isAccessor, redundancy, false);
+  }
+
+  private int createServerRegion(int totalNumBuckets, boolean isAccessor, int 
redundancy,
+      boolean setMaximumTimeBetweenPingsLargerThanDefaultTimeout)
+      throws Exception {
     PartitionAttributesFactory factory = new PartitionAttributesFactory();
     factory.setTotalNumBuckets(totalNumBuckets).setRedundantCopies(redundancy);
     if (isAccessor) {
@@ -138,6 +145,12 @@ public class 
ClientServerTransactionFailoverDistributedTest implements Serializa
 
     CacheServer server = cacheRule.getCache().addCacheServer();
     server.setPort(0);
+    if (setMaximumTimeBetweenPingsLargerThanDefaultTimeout) {
+      // set longer than GeodeAwaitility.DEFAULT_TIMEOUT to avoid GII 
triggered by
+      // region synchronize with.
+      // This ensures the commit is brought into replicas by the 
CommitProcessQueryMessage.
+      server.setMaximumTimeBetweenPings((int) 
GeodeAwaitility.getTimeout().getValueInMS() + 60000);
+    }
     server.start();
     return server.getPort();
   }
@@ -356,7 +369,7 @@ public class ClientServerTransactionFailoverDistributedTest 
implements Serializa
     getBlackboard().initBlackboard();
     VM client = server4;
 
-    port1 = server1.invoke(() -> createServerRegion(1, false, 2));
+    port1 = server1.invoke(() -> createServerRegion(1, false, 2, true));
 
     server1.invoke(() -> {
       Region region = cacheRule.getCache().getRegion(regionName);
@@ -364,9 +377,9 @@ public class ClientServerTransactionFailoverDistributedTest 
implements Serializa
       region.put("Key-2", "Value-2");
     });
 
-    port2 = server2.invoke(() -> createServerRegion(1, false, 2));
+    port2 = server2.invoke(() -> createServerRegion(1, false, 2, true));
 
-    server3.invoke(() -> createServerRegion(1, false, 2));
+    server3.invoke(() -> createServerRegion(1, false, 2, true));
 
     client.invoke(() -> createClientRegion(true, port1, port2));
 
@@ -433,14 +446,18 @@ public class 
ClientServerTransactionFailoverDistributedTest implements Serializa
 
     server2.invoke(() -> {
       Region region = cacheRule.getCache().getRegion(regionName);
-      assertThat(region.get("TxKey-1")).isEqualTo("TxValue-1");
-      assertThat(region.get("TxKey-2")).isEqualTo("TxValue-2");
+      await().untilAsserted(() -> {
+        assertThat(region.get("TxKey-1")).isEqualTo("TxValue-1");
+        assertThat(region.get("TxKey-2")).isEqualTo("TxValue-2");
+      });
     });
 
     server3.invoke(() -> {
       Region region = cacheRule.getCache().getRegion(regionName);
-      assertThat(region.get("TxKey-1")).isEqualTo("TxValue-1");
-      assertThat(region.get("TxKey-2")).isEqualTo("TxValue-2");
+      await().untilAsserted(() -> {
+        assertThat(region.get("TxKey-1")).isEqualTo("TxValue-1");
+        assertThat(region.get("TxKey-2")).isEqualTo("TxValue-2");
+      });
     });
 
     client.invoke(() -> {

Reply via email to