You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by Robbie Gemmell <ro...@gmail.com> on 2013/10/23 01:40:55 UTC

Re: qpid .20 and .24 OutOfMemoryError when using JCA + JBoss

Hi Joey,

I only just noticed your mail as it got spam filtered. Please keep mails on
the mailing lists unless there is good reason to do otherwise, it could
have avoided the message going unseen and others able to help might have
replied before now. I have included the users@ list.

It doesn't seem like your issue is related to the post you linked to, that
was the result of non-AMQP connections to the broker not being cleared down
properly when the socket closed and eventually causing resource exhaustion
over time. That shouldn't be an issue in 0.24, and doesn't sound like what
you are seeing.

You are provoking a similar stacktrace but presumably through different
means (it is often the result of running out of process stack memory
required to create new threads), such as having lots of actual AMQP
connections opened (which the broker currently uses 2 threads each to
service) from JBoss and reaching the limit of your particular broker JVM
process.

Are you using a 64bit JVM or a 32bit JVM? If the latter, is it a 32bit or
64bit Windows 7 installation, and what is your heap size set to? One
situation I know where a couple of users have run into similar issues is
where they needed to service >1000 connections and were running out of
stack memory when using a 32bit JVM on Windows, as the 32bit JVM process on
Windows was limited to 2GB of total memory including the heap (i.e the
larger your heap, the less is left for stack...if you run out, you get
those exceptions). Using a 64bit JVM (and/or using Linux) removed the 2GB
process memory limitation and enabled them to service many more connections.

With that said, it seems you may not expect the client to have that many
connections open to the broker at once (though it isn't that clear from the
snippet how many actually were concurrently open, i.e had any closed prior
to the snippet) in which case it is likely to be the application
configuration you need to look at. I don't have any experience using the
client in that way so I can't really offer any assistance from that
perspective, but perhaps others can.

Robbie

On 4 October 2013 14:56, Joey Daughtery <jd...@t-sciences.com> wrote:

> Robbie
> I saw the post you made at:
>
> http://mail-archives.apache.org/mod_mbox/qpid-dev/201212.mbox/%3CCAFitrpS4H=fW7n0OcO0yWf8DX_Qsf=K8_jWvv8D6PddXXPHsOg@mail.gmail.com%3E
>
> And wanted to show you the following outofmemory error that I am getting
> on qpid .20 and got the same on .24.  I see the following after starting up
> jboss.  We are using the rar deployment in jboss.   My message driven bean
> is pooling 200 MDB instances.  Not sure why qpid server creates 580
> threads, but it does not create all the threads until I startup jboss.  Any
> thoughts would be appreciated.
>
> Running on Windows 7, Dell laptop, and java se 6.  The following is the
> last few lines of the qpid.log file.
>
> 2013-10-04 08:49:21,769 INFO  [IoReceiver - /127.0.0.1:53916]
> (Log4jMessageLogger.java:68) - [con:580(client_id@/127.0.0.1:53916/test)]
> CON-1001 : Open : Client ID : client_id : Protocol Version : 0-10 : Client
> Version : 0.20
> 2013-10-04 08:49:21,772 INFO  [IoReceiver - /127.0.0.1:53915]
> (Log4jMessageLogger.java:68) - [con:579(client_id@/
> 127.0.0.1:53915/test)/ch:1] [sub:579(vh(/test)/qu(iharvest.Queue)]
> SUB-1001 : Create
> 2013-10-04 08:49:21,775 INFO  [IoReceiver - /127.0.0.1:53916]
> (Log4jMessageLogger.java:68) - [con:580(client_id@/
> 127.0.0.1:53916/test)/ch:0] CHN-1001 : Create
> 2013-10-04 08:49:21,778 INFO  [IoReceiver - /127.0.0.1:53916]
> (Log4jMessageLogger.java:68) - [con:580(client_id@/
> 127.0.0.1:53916/test)/ch:1] CHN-1001 : Create
> 2013-10-04 08:49:21,785 INFO  [IoReceiver - /127.0.0.1:53916]
> (Log4jMessageLogger.java:68) - [con:580(client_id@/
> 127.0.0.1:53916/test)/ch:1] [sub:580(vh(/test)/qu(iharvest.Queue)]
> SUB-1001 : Create
> 2013-10-04 08:49:21,831 ERROR [Thread-10] (Main.java:367) - Uncaught
> exception, shutting down.
> java.lang.OutOfMemoryError: unable to create new native thread
> at java.lang.Thread.start0(Native Method)
>  at java.lang.Thread.start(Thread.java:640)
> at
> org.apache.qpid.transport.network.io.IoReceiver.initiate(IoReceiver.java:86)
>  at
> org.apache.qpid.transport.network.io.IoNetworkConnection.start(IoNetworkConnection.java:70)
> at
> org.apache.qpid.transport.network.io.IoNetworkTransport$AcceptingThread.run(IoNetworkTransport.java:257)
>
> Thanks
>
> Joe Daughtery
>