On Wed, May 02, 2012 at 09:00:35PM -0600, Alan Robertson wrote:
> This is very interesting.  My apologies for missing this memory leak 
> :-(.  The code logs memory usage periodically exactly to help notice 
> such a thing.
> 
> In my new open source project [http://assimmon.org], I am death on 
> memory leaks.  But I can assure you that back when that code was 
> written, it was not at all clear who deleted what memory when - when it 
> came to the glib.  I'm not sure if valgrind was out back then, but I 
> certainly didn't know about it.
> 
> I confess that even on this new project I had a heck of a time making 
> all the glib objects go away.  I finally got them cleaned up - but it 
> took weeks of running under valgrind before I worked out when to do what 
> to make it throw the objects away - but not crash due to a bad reference.
> 
> By the way, I suspect Lars' suggestion would work fine.  I would 
> certainly explain what the "better" patch is in the comments when you 
> apply this one.

My suggestion would be:


diff --git a/lib/clplumbing/GSource.c b/lib/clplumbing/GSource.c
--- a/lib/clplumbing/GSource.c
+++ b/lib/clplumbing/GSource.c
@@ -1506,6 +1506,7 @@ Gmain_timeout_add_full(gint priority
        g_source_set_callback(source, function, data, notify); 
 
        append->gsourceid = g_source_attach(source, NULL);
+       g_source_unref(source);
        return append->gsourceid;
 
 }


Then recompile and reinstall libglue.
Please see if that also fixes the leak for you
(and does not explode).

Note: that is *instead* of your patch,
not in addition to.

Thanks,
        Lars

-- 
: Lars Ellenberg
: LINBIT | Your Way to High Availability
: DRBD/HA support and consulting http://www.linbit.com

DRBD® and LINBIT® are registered trademarks of LINBIT, Austria.
_______________________________________________________
Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org
http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
Home Page: http://linux-ha.org/

Reply via email to