[ 
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.

Reply via email to