Benjamin Holzamer created ARTEMIS-2164:
------------------------------------------

             Summary: ActiveMQ fails on start with OutOfMemoryError
                 Key: ARTEMIS-2164
                 URL: https://issues.apache.org/jira/browse/ARTEMIS-2164
             Project: ActiveMQ Artemis
          Issue Type: Bug
          Components: Broker
    Affects Versions: 2.6.3, 2.6.0
         Environment: MS Windows Server 2016
            Reporter: Benjamin Holzamer
         Attachments: artemis-data.zip, broker.xml

When starting ActiveMQ we get an out of memory error: 

{code}

Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit 
exceeded
 at 
org.apache.activemq.artemis.utils.collections.TypedProperties$StringValue.readStringValue(TypedProperties.java:899)
 at 
org.apache.activemq.artemis.utils.collections.TypedProperties.decode(TypedProperties.java:407)
 at 
org.apache.activemq.artemis.core.message.impl.CoreMessage.checkProperties(CoreMessage.java:550)
 at 
org.apache.activemq.artemis.core.message.impl.CoreMessage.getScheduledDeliveryTime(CoreMessage.java:319)
 at 
org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.reroute(PostOfficeImpl.java:944)
 at 
org.apache.activemq.artemis.core.server.impl.PostOfficeJournalLoader.handleAddMessage(PostOfficeJournalLoader.java:227)
 at 
org.apache.activemq.artemis.core.persistence.impl.journal.AbstractJournalStorageManager.loadMessageJournal(AbstractJournalStorageManager.java:1167)
 at 
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.loadJournals(ActiveMQServerImpl.java:2618)
 at 
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.initialisePart2(ActiveMQServerImpl.java:2376)
 at 
org.apache.activemq.artemis.core.server.impl.LiveOnlyActivation.run(LiveOnlyActivation.java:72)
 at 
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.internalStart(ActiveMQServerImpl.java:535)
 at 
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.start(ActiveMQServerImpl.java:474)
 at 
org.apache.activemq.artemis.integration.FileBroker.start(FileBroker.java:111)
 at org.apache.activemq.artemis.cli.commands.Run.execute(Run.java:82)
 at org.apache.activemq.artemis.cli.Artemis.internalExecute(Artemis.java:149)
 at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:97)
 at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:124)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
 at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:498)
 at org.apache.activemq.artemis.boot.Artemis.execute(Artemis.java:129)

{code}

 

There is one queue: requestQ which has more then 400,000 entries. 
As you can see in the attached broker.xml the paging is activated for all 
addresses. 

Attached you can also find the complete data folder including all messages. it 
is failing on version 2.6.0, also an update to 2.6.3 which is the current 
version did not help.

 

ActiveMQ was started as windows service with the following parameter:

{code}

C:\Program Files\Java\jdk1.8.0_181\bin\java.exe 
-Xbootclasspath/a:F:\XXX\app\artemis\lib\jboss-logmanager-2.0.3.Final.jar 
-XX:+UseParallelGC -XX:+AggressiveOpts -Xms512M -Xmx1024M 
-classpath F:\XXX\app\artemis\lib\artemis-boot.jar 
-Dartemis.home=F:\XXX\app\artemis 
-Dartemis.instance=F:\XXX\app\artemis-broker 
-Ddata.dir=F:\XXX\app\artemis-broker\data 
-Dartemis.instance.etc="F:\XXX\app\artemis-broker\etc" 
-Djava.util.logging.manager=org.jboss.logmanager.LogManager 
-Dlogging.configuration=file:/F:/XXX/app/artemis-broker/etc//logging.properties 
-Djava.security.auth.login.config=F:\XXX\app\artemis-broker\etc\login.config 
-Dhawtio.realm=activemq 
-Dhawtio.offline="true" 
-Dhawtio.role=amq 
-Dhawtio.rolePrincipalClasses=org.apache.activemq.artemis.spi.core.security.jaas.RolePrincipal
 
-Djolokia.policyLocation=file:/F:/XXX/app/artemis-broker/etc//jolokia-access.xml
 org.apache.activemq.artemis.boot.Artemis run

{code}

 

We analyzed a heapdump and saw that all the messages got loaded into memory 
regardless that we have activated paging. 

 

Expectation: Using the pagination option, ActiveMQ should not run out of 
memory. 

 

 

 

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to