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(() -> {