[
https://issues.apache.org/jira/browse/GEODE-4868?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16402283#comment-16402283
]
ASF subversion and git services commented on GEODE-4868:
--------------------------------------------------------
Commit d48607d51f718a6c497d7e6b14a8dc9b87fe2e67 in geode's branch
refs/heads/develop from Xiaojian Zhou
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=d48607d ]
GEODE-4868: depose primary should reduce brq's size in
deposePrimaryForColocatedChildren (#1625)
> when member deposed primary buckets, it did not decrease the queue size
> -----------------------------------------------------------------------
>
> Key: GEODE-4868
> URL: https://issues.apache.org/jira/browse/GEODE-4868
> Project: Geode
> Issue Type: Bug
> Components: wan
> Reporter: xiaojian zhou
> Assignee: xiaojian zhou
> Priority: Major
> Labels: pull-request-available
> Time Spent: 20m
> Remaining Estimate: 0h
>
> {noformat}
> It can use following test code to reproduce the issue:
> diff --git
> a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/AsyncEventQueueTestBase.java
>
> b/geode-core/src/test/java/org/apache/geode/internal/cache/wan/AsyncEventQueueTestBase.java
> index 545d0cac4..fbc0dc015 100644
> ---
> a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/AsyncEventQueueTestBase.java
> +++
> b/geode-core/src/test/java/org/apache/geode/internal/cache/wan/AsyncEventQueueTestBase.java
> @@ -717,6 +717,10 @@ public class AsyncEventQueueTestBase extends
> JUnit4DistributedTestCase {
> }
> }
> final AsyncEventQueueStats statistics = ((AsyncEventQueueImpl)
> queue).getStatistics();
> + Awaitility.await().atMost(60, TimeUnit.SECONDS)
> + .until(() -> assertEquals("Expected queue entries: " + queueSize
> + + " but actual entries: " + statistics.getEventQueueSize(),
> queueSize,
> + statistics.getEventQueueSize()));
> assertEquals(queueSize, statistics.getEventQueueSize());
> assertEquals(eventsReceived, statistics.getEventsReceived());
> diff --git
> a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventListenerDUnitTest.java
>
> b/geode-core/src/test/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventListenerDUnitTest.java
> index 465f35a87..058bf19cc 100644
> ---
> a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventListenerDUnitTest.java
> +++
> b/geode-core/src/test/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventListenerDUnitTest.java
> @@ -1519,6 +1519,11 @@ public class AsyncEventListenerDUnitTest extends
> AsyncEventQueueTestBase {
> () ->
> AsyncEventQueueTestBase.getAllPrimaryBucketsOnTheNode(getTestMethodName() +
> "_PR"));
>
> LogWriterUtils.getLogWriter().info("Primary buckets on vm2: " +
> primaryBucketsvm2);
> +
> + // before shutdown vm2, both vm1 and vm2 should have 40 events in
> primary queue
> + vm1.invoke(()->AsyncEventQueueTestBase.checkAsyncEventQueueStats("ln",
> 40,
> 80, 80, 0));
> + vm2.invoke(()->AsyncEventQueueTestBase.checkAsyncEventQueueStats("ln",
> 40, 80, 80, 0));
> +
> // ---------------------------- Kill vm2 --------------------------
> vm2.invoke(() -> AsyncEventQueueTestBase.killSender());
> // ----------------------------------------------------------------
> @@ -1527,15 +1532,26 @@ public class AsyncEventListenerDUnitTest extends
> AsyncEventQueueTestBase {
> vm3.invoke(createCacheRunnable(lnPort));
> vm3.invoke(() ->
> AsyncEventQueueTestBase.createAsyncEventQueueWithListener2("ln", true, 100, 5,
> false, null));
> + // vm3 will move some primary buckets from vm1, but vm1's primary queue
> size did not reduce
> + vm3.invoke(pauseAsyncEventQueueRunnable());
> vm3.invoke(() ->
> AsyncEventQueueTestBase.createPRWithRedundantCopyWithAsyncEventQueue(
> getTestMethodName() + "_PR", "ln", isOffHeap()));
> -
> +
> // ------------------------------------------------------------------
> String regionName = getTestMethodName() + "_PR";
> Set<Integer> primaryBucketsvm3 = (Set<Integer>) vm3
> .invoke(() ->
> AsyncEventQueueTestBase.getAllPrimaryBucketsOnTheNode(regionName));
> + LogWriterUtils.getLogWriter().info("Primary buckets on vm3: " +
> primaryBucketsvm3);
> + Set<Integer> primaryBucketsvm1 = (Set<Integer>) vm1.invoke(
> + () ->
> AsyncEventQueueTestBase.getAllPrimaryBucketsOnTheNode(getTestMethodName() +
> "_PR"));
> + LogWriterUtils.getLogWriter().info("After shutdown vm2, started vm3,
> Primary buckets on vm1: " + primaryBucketsvm1);
>
> +// vm1.invoke(()->AsyncEventQueueTestBase.checkAsyncEventQueueStats("ln",
> 80, 80, 80, 0));
> + vm1.invoke(()->AsyncEventQueueTestBase.checkAsyncEventQueueStats("ln",
> 40, 80, 80, 0));
> + vm3.invoke(()->AsyncEventQueueTestBase.checkAsyncEventQueueStats("ln",
> 40, 0, 0, 0));
> +
> + vm3.invoke(() -> AsyncEventQueueTestBase.resumeAsyncEventQueue("ln"));
> vm1.invoke(() -> AsyncEventQueueTestBase.resumeAsyncEventQueue("ln"));
>
> vm1.invoke(() ->
> AsyncEventQueueTestBase.waitForAsyncQueueToGetEmpty("ln"))
> The root cause is:
> when depose primary, it only check if bucket is a brq for data region.
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)