[
https://issues.apache.org/jira/browse/QPID-395?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bhupendra Bhardwaj resolved QPID-395.
-------------------------------------
Resolution: Fixed
Testsclasses are updated to accpet a pause parameter. This is needed in tests
which are non-transacted. Becasue transacted tests have a commit call, which
gives enough time to mina IOFilter chain to clear the cache.
On average a commit call takes 1.8 sec to complete when batch of 100 messages
of size 100KB are sent.
If we upgrade the mina this pause might not be needed but that can't be said
unless we upgradfe and test.
> There needs to be a pause between batches of messages produced by the client
> to avoid OutOfMemory error
> -------------------------------------------------------------------------------------------------------
>
> Key: QPID-395
> URL: https://issues.apache.org/jira/browse/QPID-395
> Project: Qpid
> Issue Type: Bug
> Components: Java Performance Tests
> Reporter: Bhupendra Bhardwaj
> Assigned To: Bhupendra Bhardwaj
> Priority: Minor
>
> The Mina layer throws OutOfMemoryError if the messages of high size like 100k
> are sent with non-transacted clients.
> To avoid this, a pause of few seconds needs to be set between each batch of
> messages.
> The error is -
> Exception in thread "Thread-2" java.lang.OutOfMemoryError: Java heap space
> org.apache.mina.filter.codec.ProtocolEncoderException:
> java.lang.OutOfMemoryError: Java heap space
> at
> org.apache.mina.filter.codec.ProtocolCodecFilter.filterWrite(ProtocolCodecFilter.java:241)
> at
> org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(AbstractIoFilterChain.java:573)
> at
> org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:52)
> at
> org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.filterWrite(AbstractIoFilterChain.java:789)
> at
> org.apache.mina.common.support.AbstractIoFilterChain$2.filterWrite(AbstractIoFilterChain.java:213)
> at
> org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(AbstractIoFilterChain.java:573)
> at
> org.apache.mina.common.support.AbstractIoFilterChain.fireFilterWrite(AbstractIoFilterChain.java:564)
> at
> org.apache.mina.transport.socket.nio.SocketSessionImpl.write0(SocketSessionImpl.java:186)
> at
> org.apache.mina.common.support.BaseIoSession.write(BaseIoSession.java:146)
> at
> org.apache.mina.common.support.BaseIoSession.write(BaseIoSession.java:132)
> at
> org.apache.qpid.client.protocol.AMQProtocolSession.writeFrame(AMQProtocolSession.java:282)
> at
> org.apache.qpid.client.protocol.AMQProtocolHandler.writeFrame(AMQProtocolHandler.java:422)
> at
> org.apache.qpid.client.BasicMessageProducer.sendImpl(BasicMessageProducer.java:508)
> at
> org.apache.qpid.client.BasicMessageProducer.sendImpl(BasicMessageProducer.java:420)
> at
> org.apache.qpid.client.BasicMessageProducer.send(BasicMessageProducer.java:297)
> at
> org.apache.qpid.requestreply.PingPongProducer.sendMessage(PingPongProducer.java:1206)
> at
> org.apache.qpid.requestreply.PingPongProducer.pingNoWaitForReply(PingPongProducer.java:871)
> at
> org.apache.qpid.requestreply.PingPongProducer.pingAndWaitForReply(PingPongProducer.java:782)
> at
> org.apache.qpid.requestreply.PingPongProducer.pingAndWaitForReply(PingPongProducer.java:742)
> at
> org.apache.qpid.ping.PingAsyncTestPerf.testAsyncPingOk(PingAsyncTestPerf.java:177)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at
> uk.co.thebadgerset.junit.extensions.AsymptoticTestCase.runTest(AsymptoticTestCase.java:225)
> at junit.framework.TestCase.runBare(TestCase.java:127)
> at junit.framework.TestResult$1.protect(TestResult.java:106)
> at junit.framework.TestResult.runProtected(TestResult.java:124)
> at junit.framework.TestResult.run(TestResult.java:109)
> at
> uk.co.thebadgerset.junit.extensions.TKTestResult.run(TKTestResult.java:382)
> at junit.framework.TestCase.run(TestCase.java:118)
> at junit.framework.TestSuite.runTest(TestSuite.java:208)
> at junit.framework.TestSuite.run(TestSuite.java:203)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
> at junit.extensions.TestDecorator.run(TestDecorator.java:28)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
> at junit.extensions.TestDecorator.run(TestDecorator.java:28)
> at
> uk.co.thebadgerset.junit.extensions.AsymptoticTestDecorator.run(AsymptoticTestDecorator.java:159)
> at
> uk.co.thebadgerset.junit.extensions.ScaledTestDecorator$TestThreadHandler.run(ScaledTestDecorator.java:268)
> at java.lang.Thread.run(Thread.java:595)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.