Skip Menu |

This queue is for tickets about the IPC-Run CPAN distribution.

Report information
The Basics
Id: 55612
Status: resolved
Priority: 0/
Queue: IPC-Run

Owner: TODDR [...]
Requestors: pavel.l.georgiev [...]

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)

Subject: Fix for #13660
Date: Mon, 15 Mar 2010 17:32:33 -0700
To: bug-IPC-Run [...]
From: Pavel Georgiev <pavel.l.georgiev [...]>
Download (untitled) / with headers
text/plain 728b
Hello, I hit an old issue: and I've been digging into IPC::Run. I noticed that _new_internal() inside creates circular references which lead to the observed leak. Such references are created on line 163, 182, 186, 204, 206, 210, 212, the closures that are pushed to $self{FILTERS} contain references to $self, so that the reference count on $self does never go to 0 and it is never freed. I'm attaching a patch that sets $self{FILTERS} to undef in _cleanup inside, so that the object can be destroyed by the garbage collector. That works for me and the test code inside the bug report no longer leaks. Hope that helps and makes it into the main release, Pavel
Download mem-leak.patch
text/x-diff 284b

Message body is not shown because sender requested not to inline it.

Download (untitled) / with headers
text/plain 116b
I can't really find a valid test case for this, but I see no reason not to cleanup the filters on _cleanup call.
will be a part of 0.85
Download (untitled) / with headers
text/plain 119b
Turns out this breaks tests. I'm going to have to remove this from 0.85 for now as it's supposed to be a quick release
Ticket migrated to github as

This service is sponsored and maintained by Best Practical Solutions and runs on infrastructure.

Please report any issues with to