[rabbitmq-discuss] Memory Leak in RabbitMQ .NET Driver v1.7.1+
bmurphy1976 at gmail.com
Thu Mar 18 20:01:51 GMT 2010
I just shut down the profiler in our production environment after running
for a few hours. I can confirm that removing this line does in fact resolve
our memory leak.
On Thu, Mar 18, 2010 at 1:19 PM, Bryan Murphy <bmurphy1976 at gmail.com> wrote:
> Sometime between 1.7.0 and 1.7.1 (revision 262) the following line was
> added to ConnectionBase.MainLoop in the RabbitMQ .NET driver:
> Thread.GetDomain().DomainUnload += new EventHandler(HandleDomainUnload);
> I've found no place in the code where this event is unregistered, leading
> to a memory leak every time a connection is disposed. The following
> reference chain compounds this problem if you send large messages and
> create/dispose a large number of connections:
> DomainUnload -> Connection -> SocketFrameHandler ->
> NetworkBinaryReader/Writer -> BufferedStream
> We're currently seeing the symptoms of this in our production environment
> where one of our processes (which usually settles in around 300mb) grows
> upwards of 4gig over a 12 to 18 hour period.
> I believe you can work around this by either rolling back to the 1.7.0
> driver, or commenting out that line of code. We're currently pushing out a
> custom build of the driver to verify this fix, but it will be a few hours
> until I know for sure.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the rabbitmq-discuss