[ 
https://issues.apache.org/jira/browse/QPID-6331?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14289087#comment-14289087
 ] 

Rob Godfrey commented on QPID-6331:
-----------------------------------

Currently for AMQP 1.0 messages the message content is always retained in 
memory even for persistent messages.

I'll look to see if we can implement the same behaviour for AMQP 1.0 as we do 
for 0-9/0-10 whereby messages are offloaded to disk in low memory conditions.

> OutOfMemoryError: Java heap space
> ---------------------------------
>
>                 Key: QPID-6331
>                 URL: https://issues.apache.org/jira/browse/QPID-6331
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: 0.30
>         Environment: Red Hat Linux 6.5
> java version "1.7.0_71"
> OpenJDK Runtime Environment (rhel-2.5.3.1.el6-x86_64 u71-b14)
> OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)
>            Reporter: Mark Soderquist
>
> While populating a queue with tens of thousands of messages we ran into an 
> OutOfMemoryError. The test case was to load roughly one million, 5KB, 
> messages on to a queue (using roughly 5GB of storage space). What we didn't 
> expect was the broker to run out of memory since the messages should be 
> persisted to the disk. We intentionally closed the session and connection 
> every 5000 messages with the intent of not having many message in memory at a 
> time. We are not sure what thread caused the error so here are all the traces 
> with an OutOfMemoryError:
> 2015-01-21 14:33:59,321 ERROR [IoReceiver - /10.96.250.6:41635] 
> (thread.LoggingUncaughtExceptionHandler) - Uncaught exception in thread 
> "IoReceiver - /10.96.250.6:41635"
> java.lang.OutOfMemoryError: Java heap space
>         at java.nio.HeapByteBuffer.<init>(HeapByteBuffer.java:57)
>         at java.nio.ByteBuffer.allocate(ByteBuffer.java:331)
>         at 
> org.apache.qpid.server.protocol.v1_0.ProtocolEngine_1_0_0_SASL.<init>(ProtocolEngine_1_0_0_SASL.java:111)
>         at 
> org.apache.qpid.server.protocol.v1_0.ProtocolEngineCreator_1_0_0_SASL.newProtocolEngine(ProtocolEngineCreator_1_0_0_SASL.java:67)
>         at 
> org.apache.qpid.server.protocol.MultiVersionProtocolEngine$SelfDelegateProtocolEngine.received(MultiVersionProtocolEngine.java:329)
>         at 
> org.apache.qpid.server.protocol.MultiVersionProtocolEngine$SelfDelegateProtocolEngine.received(MultiVersionProtocolEngine.java:259)
>         at 
> org.apache.qpid.server.protocol.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:133)
>         at 
> org.apache.qpid.server.protocol.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:49)
>         at 
> org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:161)
>         at java.lang.Thread.run(Thread.java:745)
> 2015-01-21 14:34:00,176 ERROR [IoReceiver - /10.96.250.6:41635] (server.Main) 
> - Uncaught exception, continuing.
> java.lang.OutOfMemoryError: Java heap space
>         at java.nio.HeapByteBuffer.<init>(HeapByteBuffer.java:57)
>         at java.nio.ByteBuffer.allocate(ByteBuffer.java:331)
>         at 
> org.apache.qpid.server.protocol.v1_0.ProtocolEngine_1_0_0_SASL.<init>(ProtocolEngine_1_0_0_SASL.java:111)
>         at 
> org.apache.qpid.server.protocol.v1_0.ProtocolEngineCreator_1_0_0_SASL.newProtocolEngine(ProtocolEngineCreator_1_0_0_SASL.java:67)
>         at 
> org.apache.qpid.server.protocol.MultiVersionProtocolEngine$SelfDelegateProtocolEngine.received(MultiVersionProtocolEngine.java:329)
>         at 
> org.apache.qpid.server.protocol.MultiVersionProtocolEngine$SelfDelegateProtocolEngine.received(MultiVersionProtocolEngine.java:259)
>         at 
> org.apache.qpid.server.protocol.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:133)
>         at 
> org.apache.qpid.server.protocol.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:49)
>         at 
> org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:161)
>         at java.lang.Thread.run(Thread.java:745)
> 2015-01-21 14:34:08,799 INFO  [IoReceiver - /10.96.250.6:41664] 
> (subscription.create) - [con:168(?@/10.96.250.6:41664/default)/ch:0] 
> [sub:82(vh(/default)/qu(emxmc-canary)] SUB-1001 : Create : Arguments : 
> JMSSelectorFilter[selector=type='emxmc-canary-test']
> 2015-01-21 14:34:10,016 INFO  [IoReceiver - /10.96.250.6:41664] 
> (subscription.close) - [con:168(?@/10.96.250.6:41664/default)/ch:0] 
> [sub:82(vh(/default)/qu(emxmc-canary)] SUB-1002 : Close
> 2015-01-21 14:34:57,300 WARN  [IoReceiver - /10.96.250.6:41772] 
> (manager.SimpleLDAPAuthenticationManagerImpl) - SASL Authentication Exception
> 2015-01-21 14:35:02,103 ERROR [IoReceiver - /10.96.250.6:41772] 
> (thread.LoggingUncaughtExceptionHandler) - Uncaught exception in thread 
> "IoReceiver - /10.96.250.6:41772"
> java.lang.OutOfMemoryError: Java heap space
>         at java.util.Arrays.copyOf(Arrays.java:2367)
>         at 
> java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:130)
>         at 
> java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:114)
>         at 
> java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:415)
>         at java.lang.StringBuffer.append(StringBuffer.java:237)
>         at java.io.StringWriter.write(StringWriter.java:112)
>         at java.io.PrintWriter.write(PrintWriter.java:456)
>         at java.io.PrintWriter.write(PrintWriter.java:473)
>         at java.io.PrintWriter.print(PrintWriter.java:603)
>         at java.io.PrintWriter.println(PrintWriter.java:756)
>         at java.lang.Throwable$WrappedPrintWriter.println(Throwable.java:764)
>         at java.lang.Throwable.printEnclosedStackTrace(Throwable.java:697)
>         at java.lang.Throwable.printStackTrace(Throwable.java:667)
>         at java.lang.Throwable.printStackTrace(Throwable.java:721)
>         at 
> org.apache.log4j.DefaultThrowableRenderer.render(DefaultThrowableRenderer.java:60)
>         at 
> org.apache.log4j.spi.ThrowableInformation.getThrowableStrRep(ThrowableInformation.java:87)
>         at 
> org.apache.log4j.spi.LoggingEvent.getThrowableStrRep(LoggingEvent.java:413)
>         at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:313)
>         at org.apache.log4j.WriterAppender.append(WriterAppender.java:162)
>         at 
> org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:251)
>         at 
> org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:66)
>         at org.apache.log4j.Category.callAppenders(Category.java:206)
>         at org.apache.log4j.Category.forcedLog(Category.java:391)
>         at org.apache.log4j.Category.warn(Category.java:1060)
>         at 
> org.apache.qpid.server.security.auth.manager.SimpleLDAPAuthenticationManagerImpl$SimpleLDAPPlainCallbackHandler.handle(SimpleLDAPAuthenticationManagerImpl.java:420)
>         at 
> org.apache.qpid.server.security.auth.sasl.plain.PlainSaslServer.evaluateResponse(PlainSaslServer.java:83)
>         at 
> org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.receiveSaslInit(ConnectionEndpoint.java:890)
>         at 
> org.apache.qpid.amqp_1_0.type.security.SaslInit.invoke(SaslInit.java:112)
>         at 
> org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.receive(ConnectionEndpoint.java:806)
>         at 
> org.apache.qpid.amqp_1_0.framing.SASLFrameHandler.parse(SASLFrameHandler.java:240)
>         at 
> org.apache.qpid.server.protocol.v1_0.ProtocolEngine_1_0_0_SASL$4.run(ProtocolEngine_1_0_0_SASL.java:383)
>         at 
> org.apache.qpid.server.protocol.v1_0.ProtocolEngine_1_0_0_SASL$4.run(ProtocolEngine_1_0_0_SASL.java:379)
> 2015-01-21 14:35:02,807 ERROR [IoReceiver - /10.96.250.6:41772] (server.Main) 
> - Uncaught exception, continuing.
> java.lang.OutOfMemoryError: Java heap space
>         at java.util.Arrays.copyOf(Arrays.java:2367)
>         at 
> java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:130)
>         at 
> java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:114)
>         at 
> java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:415)
>         at java.lang.StringBuffer.append(StringBuffer.java:237)
>         at java.io.StringWriter.write(StringWriter.java:112)
>         at java.io.PrintWriter.write(PrintWriter.java:456)
>         at java.io.PrintWriter.write(PrintWriter.java:473)
>         at java.io.PrintWriter.print(PrintWriter.java:603)
>         at java.io.PrintWriter.println(PrintWriter.java:756)
>         at java.lang.Throwable$WrappedPrintWriter.println(Throwable.java:764)
>         at java.lang.Throwable.printEnclosedStackTrace(Throwable.java:697)
>         at java.lang.Throwable.printStackTrace(Throwable.java:667)
>         at java.lang.Throwable.printStackTrace(Throwable.java:721)
>         at 
> org.apache.log4j.DefaultThrowableRenderer.render(DefaultThrowableRenderer.java:60)
>         at 
> org.apache.log4j.spi.ThrowableInformation.getThrowableStrRep(ThrowableInformation.java:87)
>         at 
> org.apache.log4j.spi.LoggingEvent.getThrowableStrRep(LoggingEvent.java:413)
>         at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:313)
>         at org.apache.log4j.WriterAppender.append(WriterAppender.java:162)
>         at 
> org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:251)
>         at 
> org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:66)
>         at org.apache.log4j.Category.callAppenders(Category.java:206)
>         at org.apache.log4j.Category.forcedLog(Category.java:391)
>         at org.apache.log4j.Category.warn(Category.java:1060)
>         at 
> org.apache.qpid.server.security.auth.manager.SimpleLDAPAuthenticationManagerImpl$SimpleLDAPPlainCallbackHandler.handle(SimpleLDAPAuthenticationManagerImpl.java:420)
>         at 
> org.apache.qpid.server.security.auth.sasl.plain.PlainSaslServer.evaluateResponse(PlainSaslServer.java:83)
>         at 
> org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.receiveSaslInit(ConnectionEndpoint.java:890)
>         at 
> org.apache.qpid.amqp_1_0.type.security.SaslInit.invoke(SaslInit.java:112)
>         at 
> org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.receive(ConnectionEndpoint.java:806)
>         at 
> org.apache.qpid.amqp_1_0.framing.SASLFrameHandler.parse(SASLFrameHandler.java:240)
>         at 
> org.apache.qpid.server.protocol.v1_0.ProtocolEngine_1_0_0_SASL$4.run(ProtocolEngine_1_0_0_SASL.java:383)
>         at 
> org.apache.qpid.server.protocol.v1_0.ProtocolEngine_1_0_0_SASL$4.run(ProtocolEngine_1_0_0_SASL.java:379)
> 2015-01-21 14:35:12,367 ERROR [Thread-1] (server.Main) - Uncaught exception, 
> continuing.
> java.lang.OutOfMemoryError: Java heap space
>         at 
> org.apache.qpid.transport.network.io.IoSender.<init>(IoSender.java:67)
>         at 
> org.apache.qpid.transport.network.io.IoNetworkConnection.<init>(IoNetworkConnection.java:61)
>         at 
> org.apache.qpid.transport.network.io.IoNetworkTransport$AcceptingThread.run(IoNetworkTransport.java:241)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to