==16593== 16,032 (1,152 direct, 14,880 indirect) bytes in 12 blocks are definitely lost in loss record 8,169 of 8,180
==16593== at 0x4C2CD7B: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==16593== by 0xBC83410: g_malloc (gmem.c:159)
==16593== by 0xBC98522: g_slice_alloc (gslice.c:1003)
==16593== by 0xBC98A75: g_slice_alloc0 (gslice.c:1029)
==16593== by 0xBA164A4: g_type_create_instance (gtype.c:1892)
==16593== by 0xB9F9E37: g_object_constructor (gobject.c:1855)
==16593== by 0xB9FB920: g_object_newv (gobject.c:1638)
==16593== by 0xB9FBF6B: g_object_new (gobject.c:1548)
==16593== by 0xDC09C03: _g_dbus_method_invocation_new (gdbusmethodinvocation.c:326)
==16593== by 0xDBF129E: validate_and_maybe_schedule_method_call (gdbusconnection.c:4826)
==16593== by 0xDBF282A: on_worker_message_received (gdbusconnection.c:4890)
==16593== by 0xDC06257: _g_dbus_worker_do_read_cb (gdbusprivate.c:492)
==16593== by 0xDB9EA4D: g_simple_async_result_complete (gsimpleasyncresult.c:777)
==16593== by 0xDB9EB7B: complete_in_idle_cb (gsimpleasyncresult.c:789)
==16593== by 0xBC7D5C4: g_main_context_dispatch (gmain.c:2784)
==16593== by 0xBC7D907: g_main_context_iterate.isra.25 (gmain.c:3359)
==16593== by 0xBC7DD71: g_main_loop_run (gmain.c:3553)
==16593== by 0xDC03D95: gdbus_shared_thread_func (gdbusprivate.c:277)
==16593== by 0xBCA15F4: g_thread_proxy (gthread.c:798)
==16593== by 0x5643F9E: start_thread (pthread_create.c:311)
==16593== by 0x59500CC: clone (clone.S:114)
Basically, dbusmenu needs to unref the GDBusMethodInvocation in its handlers when not sending a reply (ie, not calling one of the g_dbus_method_invocation_return_* functions)
We get tonnes of these in Firefox:
==16593== 16,032 (1,152 direct, 14,880 indirect) bytes in 12 blocks are definitely lost in loss record 8,169 of 8,180 valgrind/ vgpreload_ memcheck- amd64-linux. so) create_ instance (gtype.c:1892) constructor (gobject.c:1855) method_ invocation_ new (gdbusmethodinv ocation. c:326) and_maybe_ schedule_ method_ call (gdbusconnectio n.c:4826) message_ received (gdbusconnectio n.c:4890) worker_ do_read_ cb (gdbusprivate. c:492) async_result_ complete (gsimpleasyncre sult.c: 777) sult.c: 789) context_ dispatch (gmain.c:2784) context_ iterate. isra.25 (gmain.c:3359) thread_ func (gdbusprivate. c:277) create. c:311)
==16593== at 0x4C2CD7B: malloc (in /usr/lib/
==16593== by 0xBC83410: g_malloc (gmem.c:159)
==16593== by 0xBC98522: g_slice_alloc (gslice.c:1003)
==16593== by 0xBC98A75: g_slice_alloc0 (gslice.c:1029)
==16593== by 0xBA164A4: g_type_
==16593== by 0xB9F9E37: g_object_
==16593== by 0xB9FB920: g_object_newv (gobject.c:1638)
==16593== by 0xB9FBF6B: g_object_new (gobject.c:1548)
==16593== by 0xDC09C03: _g_dbus_
==16593== by 0xDBF129E: validate_
==16593== by 0xDBF282A: on_worker_
==16593== by 0xDC06257: _g_dbus_
==16593== by 0xDB9EA4D: g_simple_
==16593== by 0xDB9EB7B: complete_in_idle_cb (gsimpleasyncre
==16593== by 0xBC7D5C4: g_main_
==16593== by 0xBC7D907: g_main_
==16593== by 0xBC7DD71: g_main_loop_run (gmain.c:3553)
==16593== by 0xDC03D95: gdbus_shared_
==16593== by 0xBCA15F4: g_thread_proxy (gthread.c:798)
==16593== by 0x5643F9E: start_thread (pthread_
==16593== by 0x59500CC: clone (clone.S:114)
Basically, dbusmenu needs to unref the GDBusMethodInvo cation in its handlers when not sending a reply (ie, not calling one of the g_dbus_ method_ invocation_ return_ * functions)
I've got a patch that fixes this already