This is an automated email from the ASF dual-hosted git repository. upthewaterspout pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git
commit ff13a158020f9467a444ad4b4090c776bf463a71 Author: Dan Smith <[email protected]> AuthorDate: Fri Oct 5 15:58:17 2018 -0700 GEODE-5424: Fix tests with races relying on a poll delay These tests all were only passing because awaitility waited 100 ms before testing anything. They may all be existing flaky tests. - ClusterDistributionManagerForAdminDUnitTest - if the assertion ever failed, it would fail the awaility with a formatting error - testLeadShutdownAndCoordFailure - Further clauses also needed to be in awailitility. - testConcurrentOperationsDunitTestOnBlockingQueue - recoversFromCloseDuringRegionOperation --- .../org/apache/geode/distributed/LocatorDUnitTest.java | 5 +++-- .../ClusterDistributionManagerForAdminDUnitTest.java | 3 ++- .../geode/internal/cache/ha/HARegionQueueDUnitTest.java | 3 +++ .../PersistentPartitionedRegionDistributedTest.java | 14 ++++++-------- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/geode-core/src/distributedTest/java/org/apache/geode/distributed/LocatorDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/distributed/LocatorDUnitTest.java index 3665936..6095aad 100644 --- a/geode-core/src/distributedTest/java/org/apache/geode/distributed/LocatorDUnitTest.java +++ b/geode-core/src/distributedTest/java/org/apache/geode/distributed/LocatorDUnitTest.java @@ -1223,8 +1223,9 @@ public class LocatorDUnitTest extends JUnit4DistributedTestCase { assertTrue("Distributed system should not have disconnected", vm2.invoke(() -> LocatorDUnitTest.isSystemConnected())); - assertEquals(sys.getDistributedMember(), MembershipManagerHelper.getCoordinator(sys)); - assertEquals(mem2, MembershipManagerHelper.getLeadMember(sys)); + await().untilAsserted(() -> assertEquals(sys.getDistributedMember(), + MembershipManagerHelper.getCoordinator(sys))); + await().untilAsserted(() -> assertEquals(mem2, MembershipManagerHelper.getLeadMember(sys))); } finally { vm2.invoke(() -> disconnectDistributedSystem()); diff --git a/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/ClusterDistributionManagerForAdminDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/ClusterDistributionManagerForAdminDUnitTest.java index 6117543..0f6fb0e 100644 --- a/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/ClusterDistributionManagerForAdminDUnitTest.java +++ b/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/ClusterDistributionManagerForAdminDUnitTest.java @@ -223,7 +223,8 @@ public class ClusterDistributionManagerForAdminDUnitTest extends CacheTestCase subRegion.destroyRegion(); await() - .untilAsserted(() -> assertThat(rootRegion.subregions(false)).hasSize(expectedSize)); + .untilAsserted( + () -> assertThat(rootRegion.subregions(false).size()).isEqualTo(expectedSize)); } } } diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueDUnitTest.java index 2ac5d38..d706a49 100755 --- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueDUnitTest.java +++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueDUnitTest.java @@ -678,6 +678,9 @@ public class HARegionQueueDUnitTest extends JUnit4DistributedTestCase { new SerializableCallable("Check Ops Occurred") { @Override public Object call() throws CacheException { + if (opThreads == null) { + return false; + } for (int i = 0; i < opThreads.length; ++i) { if (((RunOp) opThreads[i]).getNumOpsPerformed() == 0) { return false; diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PersistentPartitionedRegionDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PersistentPartitionedRegionDistributedTest.java index dd17615..3466a23 100644 --- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PersistentPartitionedRegionDistributedTest.java +++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PersistentPartitionedRegionDistributedTest.java @@ -953,8 +953,10 @@ public class PersistentPartitionedRegionDistributedTest implements Serializable vm0.invoke(() -> createPartitionedRegion(1, -1, 1, true)); vm1.invoke(() -> createPartitionedRegion(1, -1, 1, true)); - // Make sure we create a bucket - vm1.invoke(() -> createData(0, 1, "a")); + vm1.invoke(() -> { + Region<Integer, Integer> region = getCache().getRegion(partitionedRegionName); + region.put(0, -1); + }); // Try to make sure there are some operations in flight while closing the cache AsyncInvocation<Integer> createPartitionedRegionWithPutsOnVM0 = vm0.invokeAsync(() -> { @@ -978,15 +980,11 @@ public class PersistentPartitionedRegionDistributedTest implements Serializable vm0.invoke(() -> { Region<Integer, Integer> region = getCache().getRegion(partitionedRegionName); - // The value is initialized as a String so wait for it to be changed to an Integer. - await().until(() -> region.get(0) != null); - return region.get(0); + await().until(() -> region.get(0) > 0); }); vm1.invoke(() -> { Region<Integer, Integer> region = getCache().getRegion(partitionedRegionName); - // The value is initialized as a String so wait for it to be changed to an Integer. - await().until(() -> region.get(0) != null); - return region.get(0); + await().until(() -> region.get(0) > 0); }); AsyncInvocation<Void> closeCacheOnVM0 = vm0.invokeAsync(() -> getCache().close());
