GNOME Bugzilla – Bug 719402
Crashes when startup
Last modified: 2013-11-27 15:24:48 UTC
This with the last gnome-desktop and the last gnome-settings-daemon, both from git master. $ /usr/lib/gnome-settings-daemon/gnome-settings-daemon --replace (gnome-settings-daemon:17049): GLib-GIO-CRITICAL **: g_dbus_connection_emit_signal: assertion 'G_IS_DBUS_CONNECTION (connection)' failed Segmentation fault (core dumped) $ valgrind /usr/lib/gnome-settings-daemon/gnome-settings-daemon --replace ==17090== Memcheck, a memory error detector ==17090== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. ==17090== Using Valgrind-3.9.0 and LibVEX; rerun with -h for copyright info ==17090== Command: /usr/lib/gnome-settings-daemon/gnome-settings-daemon --replace ==17090== (gnome-settings-daemon:17090): GLib-GIO-CRITICAL **: g_dbus_connection_emit_signal: assertion 'G_IS_DBUS_CONNECTION (connection)' failed ==17090== Warning: invalid file descriptor -1 in syscall close() ==17090== Warning: invalid file descriptor -1 in syscall close() ==17103== ==17103== HEAP SUMMARY: ==17103== in use at exit: 2,200,766 bytes in 25,763 blocks ==17103== total heap usage: 199,706 allocs, 173,943 frees, 11,597,815 bytes allocated ==17103== ==17103== LEAK SUMMARY: ==17103== definitely lost: 8,596 bytes in 17 blocks ==17103== indirectly lost: 2,349 bytes in 73 blocks ==17103== possibly lost: 76,083 bytes in 794 blocks ==17103== still reachable: 2,029,562 bytes in 24,259 blocks ==17103== suppressed: 0 bytes in 0 blocks ==17103== Rerun with --leak-check=full to see details of leaked memory ==17103== ==17103== For counts of detected and suppressed errors, rerun with: -v ==17103== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 3 from 3) ==17090== Invalid read of size 8 ==17090== at 0x6466D8D: g_type_check_instance (gtype.c:4080) ==17090== by 0x645D109: g_signal_emit_valist (gsignal.c:3109) ==17090== by 0x645E2A1: g_signal_emit (gsignal.c:3386) ==17090== by 0x61A103B: signal_cb (gdbusobjectmanagerclient.c:1079) ==17090== by 0x6180FE4: emit_signal_instance_in_idle_cb (gdbusconnection.c:3739) ==17090== by 0x66CD754: g_main_context_dispatch (gmain.c:3068) ==17090== by 0x66CDAB7: g_main_context_iterate.isra.24 (gmain.c:3714) ==17090== by 0x66CDEB9: g_main_loop_run (gmain.c:3908) ==17090== by 0x585D4A4: gtk_main (gtkmain.c:1158) ==17090== by 0x40394D: main (main.c:471) ==17090== Address 0x24e51bd0 is 128 bytes inside a block of size 176 free'd ==17090== at 0x4C289DC: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==17090== by 0x6465719: g_type_free_instance (gtype.c:1932) ==17090== by 0x5477BA1: gnome_idle_monitor_dispose (gnome-idle-monitor.c:168) ==17090== by 0x64483DB: g_object_unref (gobject.c:3146) ==17090== by 0x6443965: g_closure_invoke (gclosure.c:285) ==17090== by 0x6455DDC: signal_emit_unlocked_R (gsignal.c:3586) ==17090== by 0x645CF46: g_signal_emitv (gsignal.c:3063) ==17090== by 0x547DC13: meta_dbus_idle_monitor_proxy_g_signal (meta-dbus-idle-monitor.c:1114) ==17090== by 0xA721D8B: ffi_call_unix64 (in /usr/lib/libffi.so.6.0.1) ==17090== by 0xA7216BB: ffi_call (in /usr/lib/libffi.so.6.0.1) ==17090== by 0x6444187: g_cclosure_marshal_generic (gclosure.c:1454) ==17090== by 0x6443947: g_closure_invoke (gclosure.c:777) ==17090== ==17090== Invalid read of size 8 ==17090== at 0x6466D99: g_type_check_instance (gtype.c:4082) ==17090== by 0x645D109: g_signal_emit_valist (gsignal.c:3109) ==17090== by 0x645E2A1: g_signal_emit (gsignal.c:3386) ==17090== by 0x61A103B: signal_cb (gdbusobjectmanagerclient.c:1079) ==17090== by 0x6180FE4: emit_signal_instance_in_idle_cb (gdbusconnection.c:3739) ==17090== by 0x66CD754: g_main_context_dispatch (gmain.c:3068) ==17090== by 0x66CDAB7: g_main_context_iterate.isra.24 (gmain.c:3714) ==17090== by 0x66CDEB9: g_main_loop_run (gmain.c:3908) ==17090== by 0x585D4A4: gtk_main (gtkmain.c:1158) ==17090== by 0x40394D: main (main.c:471) ==17090== Address 0xaaaaaaaaaaaaaaaa is not stack'd, malloc'd or (recently) free'd ==17090== ==17090== ==17090== Process terminating with default action of signal 11 (SIGSEGV) ==17090== General Protection Fault ==17090== at 0x6466D99: g_type_check_instance (gtype.c:4082) ==17090== by 0x645D109: g_signal_emit_valist (gsignal.c:3109) ==17090== by 0x645E2A1: g_signal_emit (gsignal.c:3386) ==17090== by 0x61A103B: signal_cb (gdbusobjectmanagerclient.c:1079) ==17090== by 0x6180FE4: emit_signal_instance_in_idle_cb (gdbusconnection.c:3739) ==17090== by 0x66CD754: g_main_context_dispatch (gmain.c:3068) ==17090== by 0x66CDAB7: g_main_context_iterate.isra.24 (gmain.c:3714) ==17090== by 0x66CDEB9: g_main_loop_run (gmain.c:3908) ==17090== by 0x585D4A4: gtk_main (gtkmain.c:1158) ==17090== by 0x40394D: main (main.c:471) ==17090== ==17090== HEAP SUMMARY: ==17090== in use at exit: 3,688,421 bytes in 65,112 blocks ==17090== total heap usage: 421,400 allocs, 356,288 frees, 23,429,938 bytes allocated ==17090== ==17090== LEAK SUMMARY: ==17090== definitely lost: 2,844 bytes in 815 blocks ==17090== indirectly lost: 53,971 bytes in 1,590 blocks ==17090== possibly lost: 96,003 bytes in 1,056 blocks ==17090== still reachable: 3,352,467 bytes in 60,394 blocks ==17090== suppressed: 0 bytes in 0 blocks ==17090== Rerun with --leak-check=full to see details of leaked memory ==17090== ==17090== For counts of detected and suppressed errors, rerun with: -v ==17090== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 3 from 3) Killed
Regression from bug 706229.
Created attachment 262942 [details] [review] GDBusObjectManagerClient: keep the manager alive while firing signals Handlers for the signals we emit might unref the object manager. Make sure we keep it alive until we are done with it. -- I *think* this is actually a bug in glib which this patch fixes. Assigning it there for now.
Review of attachment 262942 [details] [review]: Yeah, makes sense.
Let me know if I should push this to the 2.38 branch as well. Attachment 262942 [details] pushed as 1300108 - GDBusObjectManagerClient: keep the manager alive while firing signals