GNOME Bugzilla – Bug 647893
gnome-shell restarts when adding/remove an username without a name
Last modified: 2011-06-29 14:07:28 UTC
Initially the whole session was crashing but this was fixed in accounttservice 0.6.9 http://cgit.freedesktop.org/accountsservice/commit/?id=74c01ff9e3a3b00810ae69db2f2d089b68c5220a Window manager warning: Log level 8: g_object_ref: assertion `G_IS_OBJECT (object)' failed Window manager warning: Log level 16: invalid (NULL) pointer instance Window manager warning: Log level 8: g_signal_handlers_disconnect_matched: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed Window manager warning: Log level 16: invalid (NULL) pointer instance Window manager warning: Log level 8: g_signal_handlers_disconnect_matched: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed (gnome-shell:5300): GdmUser-CRITICAL **: gdm_user_get_object_path: assertion `GDM_IS_USER (user)' failed (gnome-shell:5300): GdmUser-CRITICAL **: gdm_user_get_user_name: assertion `GDM_IS_USER (user)' failed gnome-shell-calendar-server[5331]: Got HUP on stdin - exiting ** Message: applet now removed from the notification area gnome-session[5237]: WARNING: Application 'gnome-shell.desktop' killed by signal JS LOG: GNOME Shell started at Fri Apr 15 2011 20:36:03 GMT+0300 (EEST) ** Message: applet now embedded in the notification area with G_DEBUG=fatal-warnings Window manager warning: Log level 10: g_object_ref: assertion `G_IS_OBJECT (object)' failed gnome-shell-calendar-server[9862]: Got HUP on stdin - exiting gnome-session[9769]: WARNING: Application 'gnome-shell.desktop' killed by signal aborting... gnome-session[9769]: ******************* START ******************************** gnome-session[9769]: Frame 0: gnome-session() [0x8061f56] gnome-session[9769]: Frame 1: gnome-session() [0x80620e6] gnome-session[9769]: Frame 2: gnome-session() [0x806213f] gnome-session[9769]: Frame 3: [0xb77f9400] gnome-session[9769]: Frame 4: [0xb77f9424] gnome-session[9769]: Frame 5: /lib/libc.so.6(gsignal+0x4f) [0xb6c02bbf] gnome-session[9769]: Frame 6: /lib/libc.so.6(abort+0x175) [0xb6c04545] gnome-session[9769]: Frame 7: /usr/lib/libglib-2.0.so.0(g_logv+0x36f) [0xb6d8a1b3] gnome-session[9769]: Frame 8: /usr/lib/libglib-2.0.so.0(g_log+0x3a) [0xb6d8a24f] gnome-session[9769]: Frame 9: gnome-session() [0x8067990] gnome-session[9769]: Frame 10: /usr/lib/libgobject-2.0.so.0(g_cclosure_marshal_VOID__VOID+0x98) [0xb6e934dd] gnome-session[9769]: Frame 11: /usr/lib/libgobject-2.0.so.0(g_closure_invoke+0x177) [0xb6e7b7ee] gnome-session[9769]: Frame 12: /usr/lib/libgobject-2.0.so.0(+0x23cde) [0xb6e92cde] gnome-session[9769]: Frame 13: /usr/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x670) [0xb6e920ac] gnome-session[9769]: Frame 14: /usr/lib/libgobject-2.0.so.0(g_signal_emit+0x3a) [0xb6e9239a] gnome-session[9769]: Frame 15: gnome-session() [0x8051514] gnome-session[9769]: Frame 16: gnome-session() [0x805346e] gnome-session[9769]: Frame 17: /usr/lib/libglib-2.0.so.0(+0x48228) [0xb6d83228] gnome-session[9769]: Frame 18: /usr/lib/libglib-2.0.so.0(+0x44c98) [0xb6d7fc98] gnome-session[9769]: Frame 19: /usr/lib/libglib-2.0.so.0(g_main_context_dispatch+0x7a) [0xb6d80ffc] gnome-session[9769]: Frame 20: /usr/lib/libglib-2.0.so.0(+0x46451) [0xb6d81451] gnome-session[9769]: Frame 21: /usr/lib/libglib-2.0.so.0(g_main_loop_run+0x370) [0xb6d81bba] gnome-session[9769]: Frame 22: /usr/lib/libgtk-3.so.0(gtk_main+0x77) [0xb734dba3] gnome-session[9769]: Frame 23: gnome-session() [0x8064155] gnome-session[9769]: Frame 24: /lib/libc.so.6(__libc_start_main+0xf3) [0xb6bee103] gnome-session[9769]: Frame 25: gnome-session() [0x80503d1] gnome-session[9769]: ******************* END **********************************
Created attachment 187526 [details] [review] patch that fixes this issue
Review of attachment 187526 [details] [review]: Looks fine.
Reproduction instructions would be be the useful thing for judging severity.
useradd -c 'usbmux user' -u 140 -g usbmux -d / -s /sbin/nologin usbmux userdel usbmux
Appologies for not getting back to this sooner, Ionut. As mentioned on IRC before, the patch isn't exactly right. The problem is accounts service sends out user-removed for some users not tracked on the client side. We need to ignore those spurious signals. attachment 187526 [details] [review] is trying to make code cope with a situation that it shouldn't even be run under.
Created attachment 188543 [details] [review] gdm: ignore user-removed signals for untracked users If we don't know about a user, we don't care if it goes away, and we shouldn't try to remove it from the book keeping.
@Ray i tried to replicate again this problem using accountsservice 0.6.12 and it contains the same fix. Does that mean that accountsservice now never sends that user and patch from comment 6 is obsolete?
Comment on attachment 188543 [details] [review] gdm: ignore user-removed signals for untracked users makes sense
(In reply to comment #7) > @Ray i tried to replicate again this problem using accountsservice 0.6.12 and > it contains the same fix. > > Does that mean that accountsservice now never sends that user and patch from > comment 6 is obsolete? I can still trigger the crash with accountsservice-0.6.12 on Gentoo (on useradd or userdel of a new nameless user, 50% of the time gnome-shell restarts, 50% of the time it crashes hard and I need to kill X). And the patch from comment 6 fixes the issue (prevents gnome-shell restarts and crashes).
Attachment 188543 [details] pushed as ff81659 - gdm: ignore user-removed signals for untracked users
(In reply to comment #10) > Attachment 188543 [details] pushed as ff81659 - gdm: ignore user-removed signals for > untracked users Could you please also commit the fix to the gnome-3-0 branch?
sure http://git.gnome.org/browse/gnome-shell/commit/?id=71801841e9871357060e750f1ddeb06c35c2187e gdm: ignore user-removed signals for untracked users If we don't know about a user, we don't care if it goes away, and we shouldn't try to remove it from the book keeping. https://bugzilla.gnome.org/show_bug.cgi?id=647893 (cherry picked from commit ff81659b9e619fd97cac40c426218ba152627457)