GNOME Bugzilla – Bug 632501
GNOME Shell fails to start
Last modified: 2011-03-22 02:43:05 UTC
Created attachment 172643 [details] [review] Ensure ShellApp->priv->running_state is not NULL Current gnome-shell master cannot be started, it reproducibly segfaults at startup. I attached a possible fix/workaround, though the bug is that for some weird reason ShellApp emits a "notify" signal for state while notify is frozen (as ->priv->running_state is NULL).
Not happening for me - probably something different about my set of running applications? I'm a little skeptical that a GObject:: notify signal will ever be emitted on an object between g_object_freeze() notify and g_object_thaw_notify(). Can you provide a backtrace of the crash?
Actually, no. All at once it decided to work again unpatched. I tried reproducing the exact sequence of windows that made it crash reproducibly yesterday, but it still worked perfectly, so I think this can be closed.
Happened again, so reopening, but this time I am able to provide a stack trace. As you can see, shell_app_state_transition is calling g_signal_emit.
+ Trace 224249
Created attachment 174017 [details] [review] Transition the ShellApp state when ready. shell_app_state_transition emits a signal, so invoke it only when ready, or signal handlers will see an object which is in an invalid state.
Review of attachment 174017 [details] [review]: ::: src/shell-app.c @@ +753,3 @@ + if (app->state != SHELL_APP_STATE_STARTING && app->state != SHELL_APP_STATE_RUNNING) + shell_app_state_transition (app, SHELL_APP_STATE_RUNNING); You don't need the && app->state != SHELL_APP_STATE_RUNNING, shell_app_state_transition() does that for you. Otherwise looks good, thanks!
Removed check for app->state != SHELL_APP_STATE_RUNNING as per Colin's comment and pushed. Thanks for the patch! Attachment 174017 [details] pushed as 54e3a54 - Transition the ShellApp state when ready.