[rabbitmq-discuss] RabbitMQ Java Client - Defect 24723 - Memory leak
Scott Garten
sgarten at purchasingpower.com
Mon Apr 2 16:20:42 BST 2012
Thanks for replying Steve. We played around with it a bunch, we checked our versions and found that the client and server version were out of sync. We updated everything (Java client [was 2.7.1] and the RabbitMQ server version [was 2.7.9]) to the latest (2.8.1) and reran the tests and found that the issue was resolved. Magic!
-----Original Message-----
From: Steve Powell [mailto:steve at rabbitmq.com]
Sent: Monday, April 02, 2012 11:13 AM
To: Scott Garten
Cc: RabbitMQ List
Subject: Re: [rabbitmq-discuss] RabbitMQ Java Client - Defect 24723 - Memory leak
Hi Scott,
The original problem was due to the failure of the Java client to free up the resources associated with the Consumer callbacks on a channel.
This was fixed by putting in a clean-up call (in handleShutdownSignal()); but it is just possible that this is not being called in some circumstances.
Can you tell us more about how the channels are being closed? How many channels are created for the messages you are sending in the sustainability tests?
In the bug you cite, the reported used the following mechanism to analyse the memory usage:
Get process id <pid> and do the 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/
The original problem was the WorkPool object holding on to all the channels after they were closed. This looks extremely similar, but the bug was fixed in 2.7.1, so you may have found a bug in the fix.
Steve Powell (a silly bunny)
----------some more definitions from the SPD---------- chinchilla (n.) Cooling device for the lower jaw.
socialcast (n.) Someone to whom everyone is speaking but nobody likes.
literacy (n.) A textually transmitted disease usually contracted in childhood.
On 28 Mar 2012, at 20:21, Scott Garten wrote:
> Hi all,
>
> This morning started out with an OutOfMemory exception after I kicked off a sustainability test before I left the office for the day; digging into it we found a number of classes failing to free up. They appear to correlate to the number of messages that we sent to rabbitmq. A web search revealed a defect # 24723 was identified and reported fixed.
>
> We were using 2.7.1 of the Java client, but since have also tried 2.8.0 and 2.8.1 of the client - hoping that one of these later releases contained a fix. Unfortunately, we are still seeing the same memory leak behavior.
>
> Here is a jmap dump of the classes that we witness not freeing (even after an explicit GC).
>
> 19: 1979 189984 com.rabbitmq.client.impl.ChannelN
> 28: 1980 79200 com.rabbitmq.client.impl.CommandAssembler
> 29: 1979 79160 com.rabbitmq.client.ShutdownSignalException
> 30: 1979 79160 com.rabbitmq.client.impl.ConsumerDispatcher
> 35: 1979 63328 com.rabbitmq.client.impl.AMQImpl$Channel$Close
> 48: 1980 31680 com.rabbitmq.client.impl.AMQCommand
>
> Appears to be similar to that which was previously reported on the mailing list.
>
> Not certain where to turn at this point. Can anyone confirm that they see the fix freeing up the objects?
>
> Thanks, Scott.
>
>
> ====================
> The information contained in this transmission is confidential. It is intended solely for the use of the individual(s) or organization(s) to whom it is addressed. Any disclosure, copying or further distribution is not permitted unless such privilege is explicitly granted in writing by Purchasing Power LLC. Furthermore, Purchasing Power LLC.. is not responsible for the proper and complete transmission of the substance of this communication, nor for any delay in its receipt.
> -----------------------------------------------------
> All outgoing emails are scanned for viruses by Barracuda Spam Firewall _______________________________________________
> rabbitmq-discuss mailing list
> rabbitmq-discuss at lists.rabbitmq.com
> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
The information contained in this transmission is confidential. It is intended solely for the use of the individual(s) or organization(s) to whom it is addressed. Any disclosure, copying or further distribution is not permitted unless such privilege is explicitly granted in writing by Purchasing Power LLC. Furthermore, Purchasing Power LLC.. is not responsible for the proper and complete transmission of the substance of this communication, nor for any delay in its receipt.
All outgoing emails are scanned for viruses by Barracuda Spam Firewall.
More information about the rabbitmq-discuss
mailing list