You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ds...@apache.org on 2015/10/19 19:43:55 UTC

incubator-geode git commit: GEODE-410: fix race in testEntryTtlLocalDestroy

Repository: incubator-geode
Updated Branches:
  refs/heads/feature/GEODE-409 e45f5e3aa -> 5a7b28d03


GEODE-410: fix race in testEntryTtlLocalDestroy


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

Branch: refs/heads/feature/GEODE-409
Commit: 5a7b28d031f4461c52c1f801ff6ed03a1ed8907f
Parents: e45f5e3
Author: Darrel Schneider <ds...@pivotal.io>
Authored: Mon Oct 19 10:42:22 2015 -0700
Committer: Darrel Schneider <ds...@pivotal.io>
Committed: Mon Oct 19 10:42:22 2015 -0700

----------------------------------------------------------------------
 .../gemfire/cache30/MultiVMRegionTestCase.java  | 22 +++++++++++++-------
 1 file changed, 15 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/5a7b28d0/gemfire-core/src/test/java/com/gemstone/gemfire/cache30/MultiVMRegionTestCase.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/test/java/com/gemstone/gemfire/cache30/MultiVMRegionTestCase.java b/gemfire-core/src/test/java/com/gemstone/gemfire/cache30/MultiVMRegionTestCase.java
index c5e2821..b6ba865 100644
--- a/gemfire-core/src/test/java/com/gemstone/gemfire/cache30/MultiVMRegionTestCase.java
+++ b/gemfire-core/src/test/java/com/gemstone/gemfire/cache30/MultiVMRegionTestCase.java
@@ -4059,13 +4059,13 @@ public abstract class MultiVMRegionTestCase extends RegionTestCase {
       
       vm0.invoke(new CacheSerializableRunnable("Check local destroy") {
           public void run2() throws CacheException {
-            Region region =
+            final Region region =
               getRootRegion().getSubregion(name);
             // make sure we created the entry
             {
               CountingDistCacheListener l = (CountingDistCacheListener)
                 region.getAttributes().getCacheListeners()[0];
-              int retry = 100;
+              int retry = 1000;
               while (retry-- > 0) {
                 try {
                   l.assertCount(1, 0, 0, 0);
@@ -4081,11 +4081,19 @@ public abstract class MultiVMRegionTestCase extends RegionTestCase {
             }
 
             { // now make sure it expires
-              // this should happen really fast since timeout is 10 ms
-              int retry = 10;
-              while (retry-- > 0 && region.getEntry(key) != null) {
-                pause(timeout);
-              }
+              // this should happen really fast since timeout is 10 ms.
+              // But it may take longer in some cases because of thread
+              // scheduling delays and machine load (see GEODE-410).
+              // The previous code would fail after 100ms; now we wait 3000ms.
+              WaitCriterion waitForUpdate = new WaitCriterion() {
+                public boolean done() {
+                  return region.getEntry(key) == null;
+                }
+                public String description() {
+                  return "Entry for key " + key + " never expired (since it still exists)";
+                }
+              };
+              DistributedTestCase.waitForCriterion(waitForUpdate, 3000, 1, true);
             }
             assertNull(region.getEntry(key));
           }