Upstream gave some debugging hints

'So the only unref call has a matching ref call pair.  This means it
shouldn't lead to the object getting freed. But between those two calls
the property notify handlers get run, etc.  It's at least conceivable to
me that one of those handlers is accidentally unrefing the object when
it isn't supposed to.

If that is what's going on, how are we going to find out where the
handler is?  One idea,

You could try putting

g_object_unref (user);

and the top of on_new_user_loaded. This is wrong and adding a bug, but
it may also help valgrind to spot the aforementioned, theorized
preexisting extraneously unref too. This is because it will make the
user object get freed earlier, and valgrind should show where.'


Could you give it a try?

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to gnome-shell in Ubuntu.
https://bugs.launchpad.net/bugs/1966905

Title:
  Valgrind memory errors in gnome-shell 42 from accountsservice

Status in accountsservice:
  Unknown
Status in accountsservice package in Ubuntu:
  New
Status in gnome-shell package in Ubuntu:
  New

Bug description:
  Valgrind memory errors in gnome-shell 42 from accountsservice:

  ==60511== Invalid read of size 8
  ==60511==    at 0x4D207FA: g_type_check_instance_cast (gtype.c:4120)
  ==60511==    by 0x1E421CA2: free_fetch_user_request (act-user-manager.c:1708)
  ==60511==    by 0x1E4298E7: on_find_user_by_name_finished 
(act-user-manager.c:1187)
  ==60511==    by 0x4BC0C08: g_task_return_now (gtask.c:1230)
  ==60511==    by 0x4BC0E0A: UnknownInlinedFun (gtask.c:1300)
  ==60511==    by 0x4BC0E0A: g_task_return (gtask.c:1256)
  ==60511==    by 0x4C298BA: reply_cb (gdbusproxy.c:2576)
  ==60511==    by 0x4BC0C08: g_task_return_now (gtask.c:1230)
  ==60511==    by 0x4BC0E0A: UnknownInlinedFun (gtask.c:1300)
  ==60511==    by 0x4BC0E0A: g_task_return (gtask.c:1256)
  ==60511==    by 0x4C2107E: g_dbus_connection_call_done 
(gdbusconnection.c:5895)
  ==60511==    by 0x4BC0C08: g_task_return_now (gtask.c:1230)
  ==60511==    by 0x4BC0C4C: complete_in_idle_cb (gtask.c:1244)
  ==60511==    by 0x4D9CC23: UnknownInlinedFun (gmain.c:3417)
  ==60511==    by 0x4D9CC23: g_main_context_dispatch (gmain.c:4135)
  ==60511==  Address 0x185b5110 is 0 bytes inside a block of size 64 free'd
  ==60511==    at 0x484B27F: free (in 
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
  ==60511==    by 0x4D1F7D4: g_type_free_instance (gtype.c:2008)
  ==60511==    by 0x1E428ECA: UnknownInlinedFun (act-user.c:562)
  ==60511==    by 0x1E428ECA: UnknownInlinedFun (act-user.c:557)
  ==60511==    by 0x1E428ECA: _act_user_update_from_object_path 
(act-user.c:1346)
  ==60511==    by 0x1E42966F: fetch_user_incrementally (act-user-manager.c:1789)
  ==60511==    by 0x1E4298E7: on_find_user_by_name_finished 
(act-user-manager.c:1187)
  ==60511==    by 0x4BC0C08: g_task_return_now (gtask.c:1230)
  ==60511==    by 0x4BC0E0A: UnknownInlinedFun (gtask.c:1300)
  ==60511==    by 0x4BC0E0A: g_task_return (gtask.c:1256)
  ==60511==    by 0x4C298BA: reply_cb (gdbusproxy.c:2576)
  ==60511==    by 0x4BC0C08: g_task_return_now (gtask.c:1230)
  ==60511==    by 0x4BC0E0A: UnknownInlinedFun (gtask.c:1300)
  ==60511==    by 0x4BC0E0A: g_task_return (gtask.c:1256)
  ==60511==    by 0x4C2107E: g_dbus_connection_call_done 
(gdbusconnection.c:5895)
  ==60511==    by 0x4BC0C08: g_task_return_now (gtask.c:1230)
  ==60511==  Block was alloc'd at
  ==60511==    at 0x4848899: malloc (in 
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
  ==60511==    by 0x4DA5718: g_malloc (gmem.c:125)
  ==60511==    by 0x4DBCB64: g_slice_alloc (gslice.c:1072)
  ==60511==    by 0x4DBD1CD: g_slice_alloc0 (gslice.c:1098)
  ==60511==    by 0x4D24E61: g_type_create_instance (gtype.c:1911)
  ==60511==    by 0x4D0BF4C: g_object_new_internal (gobject.c:2011)
  ==60511==    by 0x4D0D1AC: g_object_new_with_properties (gobject.c:2181)
  ==60511==    by 0x4D0DCB0: g_object_new (gobject.c:1821)
  ==60511==    by 0x1E422792: create_new_user (act-user-manager.c:706)
  ==60511==    by 0x1E429BD8: act_user_manager_get_user 
(act-user-manager.c:1879)
  ==60511==    by 0x68ADE2D: ??? (in /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0)
  ==60511==    by 0x68AA492: ??? (in /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0)
  ==60511== 
  ==60511== Invalid read of size 8
  ==60511==    at 0x4D206E9: g_type_check_instance_is_fundamentally_a 
(gtype.c:4091)
  ==60511==    by 0x4D06E9A: g_object_set_data (gobject.c:3982)
  ==60511==    by 0x1E421CB6: free_fetch_user_request (act-user-manager.c:1708)
  ==60511==    by 0x1E4298E7: on_find_user_by_name_finished 
(act-user-manager.c:1187)
  ==60511==    by 0x4BC0C08: g_task_return_now (gtask.c:1230)
  ==60511==    by 0x4BC0E0A: UnknownInlinedFun (gtask.c:1300)
  ==60511==    by 0x4BC0E0A: g_task_return (gtask.c:1256)
  ==60511==    by 0x4C298BA: reply_cb (gdbusproxy.c:2576)
  ==60511==    by 0x4BC0C08: g_task_return_now (gtask.c:1230)
  ==60511==    by 0x4BC0E0A: UnknownInlinedFun (gtask.c:1300)
  ==60511==    by 0x4BC0E0A: g_task_return (gtask.c:1256)
  ==60511==    by 0x4C2107E: g_dbus_connection_call_done 
(gdbusconnection.c:5895)
  ==60511==    by 0x4BC0C08: g_task_return_now (gtask.c:1230)
  ==60511==    by 0x4BC0C4C: complete_in_idle_cb (gtask.c:1244)
  ==60511==  Address 0x185b5110 is 0 bytes inside a block of size 64 free'd
  ==60511==    at 0x484B27F: free (in 
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
  ==60511==    by 0x4D1F7D4: g_type_free_instance (gtype.c:2008)
  ==60511==    by 0x1E428ECA: UnknownInlinedFun (act-user.c:562)
  ==60511==    by 0x1E428ECA: UnknownInlinedFun (act-user.c:557)
  ==60511==    by 0x1E428ECA: _act_user_update_from_object_path 
(act-user.c:1346)
  ==60511==    by 0x1E42966F: fetch_user_incrementally (act-user-manager.c:1789)
  ==60511==    by 0x1E4298E7: on_find_user_by_name_finished 
(act-user-manager.c:1187)
  ==60511==    by 0x4BC0C08: g_task_return_now (gtask.c:1230)
  ==60511==    by 0x4BC0E0A: UnknownInlinedFun (gtask.c:1300)
  ==60511==    by 0x4BC0E0A: g_task_return (gtask.c:1256)
  ==60511==    by 0x4C298BA: reply_cb (gdbusproxy.c:2576)
  ==60511==    by 0x4BC0C08: g_task_return_now (gtask.c:1230)
  ==60511==    by 0x4BC0E0A: UnknownInlinedFun (gtask.c:1300)
  ==60511==    by 0x4BC0E0A: g_task_return (gtask.c:1256)
  ==60511==    by 0x4C2107E: g_dbus_connection_call_done 
(gdbusconnection.c:5895)
  ==60511==    by 0x4BC0C08: g_task_return_now (gtask.c:1230)
  ==60511==  Block was alloc'd at
  ==60511==    at 0x4848899: malloc (in 
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
  ==60511==    by 0x4DA5718: g_malloc (gmem.c:125)
  ==60511==    by 0x4DBCB64: g_slice_alloc (gslice.c:1072)
  ==60511==    by 0x4DBD1CD: g_slice_alloc0 (gslice.c:1098)
  ==60511==    by 0x4D24E61: g_type_create_instance (gtype.c:1911)
  ==60511==    by 0x4D0BF4C: g_object_new_internal (gobject.c:2011)
  ==60511==    by 0x4D0D1AC: g_object_new_with_properties (gobject.c:2181)
  ==60511==    by 0x4D0DCB0: g_object_new (gobject.c:1821)
  ==60511==    by 0x1E422792: create_new_user (act-user-manager.c:706)
  ==60511==    by 0x1E429BD8: act_user_manager_get_user 
(act-user-manager.c:1879)
  ==60511==    by 0x68ADE2D: ??? (in /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0)
  ==60511==    by 0x68AA492: ??? (in /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0)

To manage notifications about this bug go to:
https://bugs.launchpad.net/accountsservice/+bug/1966905/+subscriptions


-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : desktop-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to