[rabbitmq-discuss] Problem with RabbitMQ Java Client (Memory leak)

Yogesh Ketkar yogimogi at gmail.com
Wed Feb 1 11:21:40 GMT 2012


Thanks Steve.
Can you give me some idea about date of next Java Client release (with
this bug-fix)?

regards, Yogesh

On Feb 1, 3:42 pm, Steve Powell <st... at rabbitmq.com> wrote:
> Yogesh,
>
> Thank you for this problem report. First point: each connection defines a
> (hidden) channel zero, so that explains why there are 20001 of some objects and
> 20000 of others.
>
> As to why these are not garbage collected, we must be holding a reference
> somewhere (probably in the Connection).
>
> We will investigate. I have raised a bug (24723).
>
> Steve Powell  (a happy bunny)
> ----------some more definitions from the SPD----------
> vermin (v.) Treating the dachshund for roundworm.
> chinchilla (n.) Cooling device for the lower jaw.
> socialcast (n.) Someone to whom everyone is speaking but nobody likes.
>
> On 31 Jan 2012, at 17:49, Yogesh Ketkar wrote:
>
>
>
>
>
>
>
>
>
> > I am using rabbitmq-java-client-bin-2.7.1/rabbitmq-client.jar with
> > RabbitMQ 2.7.1 Server.
>
> > Just run this code
>
> > public static void main(String[] argv) throws IOException {
> >    ConnectionFactory f = new ConnectionFactory();
> >    Connection c = f.newConnection();
> >    for(int i = 0; i < 20000; ++i) {
> >        Channel ch = c.createChannel();
> >        ch.close();
> >    }
> >    System.gc();
> >    while(true) {}
> > }
>
> > While program is running, observe the memory usage, it keeps on
> > increasing
> > Get process id and do following
> > jmap -dump:format=b,file=yo.bin  <pid>
> > jhat jhat -J-mx768m -stack false yo.bin
> > Once jhat brings up http server, go here
> >http://localhost:7000/showInstanceCounts/
>
> > 20001 instances of class com.rabbitmq.client.impl.AMQCommand
> > 20001 instances of class com.rabbitmq.client.impl.CommandAssembler
> > 20000 instances of class com.rabbitmq.client.ShutdownSignalException
> > 20000 instances of class com.rabbitmq.client.impl.AMQImpl$Channel
> > $Close
> > 20000 instances of class com.rabbitmq.client.impl.ChannelN
> > 20000 instances of class com.rabbitmq.client.impl.ConsumerDispatcher
>
> > In-spite of closing all the channels, not only channels but associated
> > objects (ShutdownSignalException, ChannelClose) continue to consume
> > memory.
> > For sure, knowing this now, I will use channelCreate call sparingly.
>
> > Is there a way to remedy this situation?
> > What is also worrying is instances of AMQCommand, so would this be the
> > case for each and every call of client library?
>
> > regards, Yogesh
>
> > _______________________________________________
> > rabbitmq-discuss mailing list
> > rabbitmq-disc... at lists.rabbitmq.com
> >https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>
> _______________________________________________
> rabbitmq-discuss mailing list
> rabbitmq-disc... at lists.rabbitmq.comhttps://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss


More information about the rabbitmq-discuss mailing list