This is an automated email from the ASF dual-hosted git repository.

jbertram pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git


The following commit(s) were added to refs/heads/main by this push:
     new 5e99516a27 NO-JIRA Fix PagingStoreImplTest#testBlockUnblock random 
failure
5e99516a27 is described below

commit 5e99516a27f2fff55355006641c1059ffba350cd
Author: Howard Gao <howard....@gmail.com>
AuthorDate: Mon Jan 22 21:57:32 2024 +0800

    NO-JIRA Fix PagingStoreImplTest#testBlockUnblock random failure
    
    PagingStroeImpl.checkReleasedMemory() will kick off
    executor.execute(this::memoryReleased) to pull from the queue 
onMemoryFreedRunnables
    asynchronously. If the executor fires the task too late, it can pick up one 
of the
    late trackMemoryChecks runnable and increase its calls, making assertion 
fail.
    need to flush the executors to make sure it doesn't happen.
---
 .../artemis/tests/unit/core/paging/impl/PagingStoreImplTest.java       | 3 +++
 1 file changed, 3 insertions(+)

diff --git 
a/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/core/paging/impl/PagingStoreImplTest.java
 
b/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/core/paging/impl/PagingStoreImplTest.java
index 3c0835fa3c..f75fb75940 100644
--- 
a/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/core/paging/impl/PagingStoreImplTest.java
+++ 
b/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/core/paging/impl/PagingStoreImplTest.java
@@ -1252,6 +1252,7 @@ public class PagingStoreImplTest extends ActiveMQTestBase 
{
          };
          store.applySetting(new 
AddressSettings().setMaxSizeBytes(1000).setAddressFullMessagePolicy(AddressFullMessagePolicy.BLOCK));
          store.addSize(100);
+         store.flushExecutors();
          store.checkMemory(trackMemoryChecks, null);
          assertEquals(1, calls.get());
 
@@ -1270,6 +1271,7 @@ public class PagingStoreImplTest extends ActiveMQTestBase 
{
 
          store.addSize(900);
          assertEquals(100, store.getAddressLimitPercent());
+         store.flushExecutors();
 
          // address full blocks
          store.checkMemory(trackMemoryChecks, null);
@@ -1285,6 +1287,7 @@ public class PagingStoreImplTest extends ActiveMQTestBase 
{
          assertEquals(2, calls.get());
 
          store.unblock();
+         store.flushExecutors();
 
          // now released
          assertTrue(Wait.waitFor(new Wait.Condition() {

Reply via email to