DonalEvans commented on a change in pull request #7422:
URL: https://github.com/apache/geode/pull/7422#discussion_r825153380
##########
File path:
geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/parallel/ParallelWANPersistenceEnabledGatewaySenderDUnitTest.java
##########
@@ -2231,6 +2240,102 @@ public void
testpersistentWanGateway_restartSenderWithCleanQueuesDelayed_expectN
vm3.invoke(() -> WANTestBase.validateRegionSize(getTestMethodName(), 0));
}
+
+ /**
+ * Enable persistence for region as well as GatewaySender and see if remote
site receives all the
+ * events.
+ */
+ @Test
+ public void
testPersistentPartitionedRegionWithGatewaySenderStartStopEventsDispatchedNoChangesInQueue()
{
+ Integer lnPort = vm0.invoke(() ->
WANTestBase.createFirstLocatorWithDSId(1));
+ Integer nyPort = vm1.invoke(() -> WANTestBase.createFirstRemoteLocator(2,
lnPort));
+
+ createCacheInVMs(nyPort, vm2, vm3);
+
+ createCacheInVMs(lnPort, vm4, vm5);
+ vm4.invoke(() -> setNumDispatcherThreadsForTheRun(5));
+ vm5.invoke(() -> setNumDispatcherThreadsForTheRun(5));
+
+ vm4.invoke(() -> WANTestBase.createSender("ln", 2, true, 100, 10, false,
true, null, false));
+ vm5.invoke(() -> WANTestBase.createSender("ln", 2, true, 100, 10, false,
true, null, false));
+
+ vm4.invoke(() ->
WANTestBase.createPersistentPartitionedRegion(getTestMethodName(), "ln", 1,
+ 100, isOffHeap()));
+ vm5.invoke(() ->
WANTestBase.createPersistentPartitionedRegion(getTestMethodName(), "ln", 1,
+ 100, isOffHeap()));
+
+
+ vm2.invoke(() ->
WANTestBase.createPersistentPartitionedRegion(getTestMethodName(), null, 1,
+ 100, isOffHeap()));
+ vm3.invoke(() ->
WANTestBase.createPersistentPartitionedRegion(getTestMethodName(), null, 1,
+ 100, isOffHeap()));
+
+ vm4.invoke(() -> WANTestBase.doPuts(getTestMethodName(), 1000));
+
+
+ vm4.invoke(() -> WANTestBase.stopSender("ln"));
+ vm5.invoke(() -> WANTestBase.stopSender("ln"));
+
+ logger.info("Stopped all the senders.");
+
+ // wait for senders to stop
+ vm4.invoke(waitForSenderNonRunnable());
+ vm5.invoke(waitForSenderNonRunnable());
+
+ createReceiverInVMs(vm2, vm3);
+
+ AsyncInvocation inv1 = vm4.invokeAsync(startSenderRunnable());
+ AsyncInvocation inv2 = vm5.invokeAsync(startSenderRunnable());
+
+ try {
+ inv1.join();
+ inv2.join();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ fail();
+ }
+
+ logger.info("Waiting for senders running.");
+ // wait for senders running
+ vm4.invoke(waitForSenderRunnable());
+ vm5.invoke(waitForSenderRunnable());
+
+ logger.info("All the senders are now running...");
+
+ AsyncInvocation inv3 = vm4.invokeAsync(stopSenderRunnable());
+ AsyncInvocation inv4 = vm5.invokeAsync(stopSenderRunnable());
+
+ try {
+ inv3.join();
+ inv4.join();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ fail();
+ }
+
+ vm4.invoke(waitForSenderNonRunnable());
+ vm5.invoke(waitForSenderNonRunnable());
+
+ Integer localSize1 = vm4.invoke(() -> WANTestBase.getPRQLocalSize("ln"));
+ Integer localSize2 = vm5.invoke(() -> WANTestBase.getPRQLocalSize("ln"));
+
+ assertThat(localSize1 + localSize2).isEqualTo(1000);
+
+ Integer regionSize1 = vm2.invoke(() ->
WANTestBase.getRegionSize(getTestMethodName()));
+ Integer regionSize2 = vm3.invoke(() ->
WANTestBase.getRegionSize(getTestMethodName()));
+
+ assertThat(regionSize1).isGreaterThan(0);
+ assertThat(regionSize2).isGreaterThan(0);
+
+ Integer vm4NumDupplicate = vm4.invoke(() ->
WANTestBase.getNumOfPosssibleDuplicateEvents("ln"));
+ Integer vm5NumDupplicate = vm5.invoke(() ->
WANTestBase.getNumOfPosssibleDuplicateEvents("ln"));
+
+ assertThat(vm4NumDupplicate + vm5NumDupplicate).isGreaterThan(100);
Review comment:
Why is it greater than 100 though? Why do we expect that at least 100
events will be marked duplicates, but not less?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]