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

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


The following commit(s) were added to refs/heads/master by this push:
     new ac4cd48  ARTEMIS-2283 Bad WARN message "AMQ222211: Storage is back to 
stable now"
     new 8ca4b66  This closes #2591
ac4cd48 is described below

commit ac4cd4856c386c4cd824a56b68c6c34a2a1aab6c
Author: Francesco Nigro <nigro....@gmail.com>
AuthorDate: Tue Mar 26 18:04:07 2019 +0100

    ARTEMIS-2283 Bad WARN message "AMQ222211: Storage is back to stable now"
    
    LocalMonitor::under on PagingManagerImpl won't log anymore with a
    warning message if the producers got unblocked and with info
    if disk it getting freed
---
 .../artemis/core/paging/impl/PagingManagerImpl.java      | 16 ++++++----------
 .../artemis/core/server/ActiveMQServerLogger.java        |  2 +-
 .../tests/integration/paging/AddressFullLoggingTest.java |  8 +++++---
 3 files changed, 12 insertions(+), 14 deletions(-)

diff --git 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PagingManagerImpl.java
 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PagingManagerImpl.java
index 92cbf03..cce039e 100644
--- 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PagingManagerImpl.java
+++ 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PagingManagerImpl.java
@@ -17,7 +17,6 @@
 package org.apache.activemq.artemis.core.paging.impl;
 
 import java.nio.file.FileStore;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Queue;
@@ -180,13 +179,7 @@ public final class PagingManagerImpl implements 
PagingManager {
                memoryReleased();
             }
          }
-         Iterator<PagingStore> storeIterator = blockedStored.iterator();
-         while (storeIterator.hasNext()) {
-            PagingStore store = storeIterator.next();
-            if (store.checkReleasedMemory()) {
-               storeIterator.remove();
-            }
-         }
+         blockedStored.removeIf(PagingStore::checkReleasedMemory);
       }
    }
 
@@ -213,9 +206,12 @@ public final class PagingManagerImpl implements 
PagingManager {
 
       @Override
       public void under(FileStore store, double usage) {
+         final boolean diskFull = PagingManagerImpl.this.diskFull;
          if (diskFull || !blockedStored.isEmpty() || 
!memoryCallback.isEmpty()) {
-            ActiveMQServerLogger.LOGGER.diskCapacityRestored();
-            diskFull = false;
+            if (diskFull) {
+               ActiveMQServerLogger.LOGGER.diskCapacityRestored();
+               PagingManagerImpl.this.diskFull = false;
+            }
             checkMemoryRelease();
          }
       }
diff --git 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/ActiveMQServerLogger.java
 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/ActiveMQServerLogger.java
index af474f0..9ed1419 100644
--- 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/ActiveMQServerLogger.java
+++ 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/ActiveMQServerLogger.java
@@ -1337,7 +1337,7 @@ public interface ActiveMQServerLogger extends BasicLogger 
{
       format = Message.Format.MESSAGE_FORMAT)
    void diskBeyondCapacity();
 
-   @LogMessage(level = Logger.Level.WARN)
+   @LogMessage(level = Logger.Level.INFO)
    @Message(id = 222211, value = "Storage is back to stable now, under 
max-disk-usage.",
       format = Message.Format.MESSAGE_FORMAT)
    void diskCapacityRestored();
diff --git 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/paging/AddressFullLoggingTest.java
 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/paging/AddressFullLoggingTest.java
index 1e88d30..fa57764 100644
--- 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/paging/AddressFullLoggingTest.java
+++ 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/paging/AddressFullLoggingTest.java
@@ -58,6 +58,7 @@ public class AddressFullLoggingTest extends ActiveMQTestBase {
 
       AddressSettings defaultSetting = new 
AddressSettings().setPageSizeBytes(10 * 1024).setMaxSizeBytes(20 * 
1024).setAddressFullMessagePolicy(AddressFullMessagePolicy.BLOCK);
       server.getAddressSettingsRepository().addMatch("#", defaultSetting);
+      server.getConfiguration().setDiskScanPeriod(100);
       server.start();
 
       internalTest(MAX_MESSAGES, MY_ADDRESS, MY_QUEUE, server);
@@ -73,7 +74,7 @@ public class AddressFullLoggingTest extends ActiveMQTestBase {
 
       AddressSettings defaultSetting = new 
AddressSettings().setAddressFullMessagePolicy(AddressFullMessagePolicy.BLOCK);
       server.getAddressSettingsRepository().addMatch("#", defaultSetting);
-      server.getConfiguration().setGlobalMaxSize(20 * 1024);
+      server.getConfiguration().setGlobalMaxSize(20 * 
1024).setDiskScanPeriod(100);
 
       server.start();
 
@@ -122,7 +123,6 @@ public class AddressFullLoggingTest extends 
ActiveMQTestBase {
 
       executor.shutdown();
       session.close();
-
       session = factory.createSession(false, true, true);
       session.start();
       ClientConsumer consumer = session.createConsumer(MY_QUEUE);
@@ -132,7 +132,8 @@ public class AddressFullLoggingTest extends 
ActiveMQTestBase {
             break;
          msg.acknowledge();
       }
-
+      //this is needed to allow to kick-in at least once disk scan
+      
TimeUnit.MILLISECONDS.sleep(server.getConfiguration().getDiskScanPeriod() * 2);
       session.close();
       locator.close();
       server.stop();
@@ -140,6 +141,7 @@ public class AddressFullLoggingTest extends 
ActiveMQTestBase {
       // Using the code only so the test doesn't fail just because someone 
edits the log text
       Assert.assertTrue("Expected to find AMQ222183", 
AssertionLoggerHandler.findText("AMQ222183", "myAddress"));
       Assert.assertTrue("Expected to find AMQ221046", 
AssertionLoggerHandler.findText("AMQ221046", "myAddress"));
+      Assert.assertFalse("Expected to not find AMQ222211", 
AssertionLoggerHandler.findText("AMQ222211"));
    }
 
    @AfterClass

Reply via email to